条带化技术,分散存储在多个盘上
(做切割数据的,存在盘上的对应位置,在外观看来就是条带状的)
raid的一种
raid级别,仅仅代表raid的组成方式是不一样的,没有上下级之分
raid级别:速度、可用性
利用校验码的形式来保证数据的可靠性(比较麻烦)浪费比例1/n
一:raid类型
1.raid0 条带
性能提升:读写
冗余能力:不具备
空间利用率:n
至少两块盘
2.raid1 镜像
性能提升:写性能下降,读性能提高
冗余能力:具备
空间利用率:1/2
正好两个
3.raid0+1(同组都可以坏,不能是不同组的相同标号坏)利用率都是1/2
raid1+0 (同组不能都坏掉) 用的多
性能表现:读写提升
冗余能力:具备
空间利用率:1/2
至少4块
4.raid4 校验码机制 校验码盘的压力大 性能瓶颈
5.raid5 轮换成为校验盘的机制
性能表现:读写提升
冗余能力:具备
空间利用率:(n-1)/n
至少3块
6.raid6 多了一块校验盘,校验方式有所改变
7.raid5+0
性能表现:读写提升
冗余能力:具备
空间利用率:(n-2)/n
至少6块
8.JBOD (Just a Bunch Of Disks,磁盘簇)是在一个底板上安装的带有多个磁盘驱动器的存储设备。通常又称为Span。
简单将多个盘罗列,对应用程序来说就是一块盘,可以储存单个较大文件
二.
硬件raid:
四块盘,raid0 raid1 必须使 *** 作系统识别硬件,安装驱动程序*
主板上具有控制芯片(上面具有cpu,提供内存)
软件raid:
MD:multi disks 多磁盘,内核中的模块,可以读取配置文件,来实现
软件raid,md要模拟一个假的raid设备(逻辑raid)/dev/md#(metadevice)
mdadm
创建模式 -C
专业选项:
-l:指定基本
-n:设备个数
-a:{yes|no} 自动为其创建设备文件
-c:chunk大小,默认为64k,(数据块)
-x:指定空闲盘的个数
创建raid0: mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{1,2}
创建raid1: mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sdb{5,6}
创建raid5: mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sdb{5,6,7}
增加热备磁盘: mdadm /dev/md2 -a /dev/sdb8
查看指定信息: mdadm -D /dev/md# 查看指定RAID设备的详细信息
查看raid状态: cat /proc/mdstat
管理模式 : 选项:-a(--add),-d(--del),-r(--remove),-f(--fail)
模拟损坏:mdadm /dev/md1 -f /dev/sdb5
移除损坏的磁盘:mdadm /dev/md1 -r /dev/sdb5
添加新的硬盘到已有阵列:mdadm /dev/md1 -a /dev/sdb7
注意:
1、新增加的硬盘需要与原硬盘大小一致
2、如果原有阵列缺少工作磁盘(如raid1只有一块在工作,raid5只有2块在工作),
这时新增加的磁盘直接变为工作磁盘,如果原有阵列工作正常,则新增加的磁盘为热备磁盘。
停止阵列:mdadm -S /dev/md1
监控模式 -F 不常用
增长模式 -G 用于增加磁盘,为阵列扩容
将raid5的热备磁盘增加到阵列工作磁盘中: mdadm -G /dev/md2 -n 4
装配模式 -A 软RAID是基于系统的,当原系统损坏了,需要重新装配RAID
将停止的阵列重新装配;mdadm -A /dev/md1 /dev/sdb5 /dev/sdb6
自动装配:mdadm运行时会自动检查/etc/mdadm.conf 文件并尝试自动装配,
因此第一次配置raid后可以将信息导入到/etc/mdadm.conf 中,
命令如下:
echo ’DEVICE /dev/hd[a-z] /dev/sd*[a-z]’ >/etc/mdadm.conf
mdadm --examine --scan --config=mdadm.conf >>/etc/mdadm.conf
实验:fdisk /dev/sd# 进行分区 修改类型为fd
raid0实验:2G 2:1G
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6} 创建
cat /proc/mdstat 查看内核中启动的raid信息
mkfs -t ext4 /dev/md0 格式化
mount 挂载使用
raid1 2G 2:2G
mdadm -C /dev/md1 -a yes -n 2 -l 0 /dev/sda# /dev/sda#
cat /proc/mdstat
mkfs -t ext4 /dev/md1
mount
raid5实验:1.mdadm -C /dev/md0 -a yes -n4 -l5 /dev/{sda1,2,3,4}
-C (create)v -a yes 创建过程中如果有设备没有,会帮着创建
-n4(用了几块硬盘) -l (级别)
2.cat /proc/mdstat 查看raid详细信息(启动中的raid)
3.mkfs -t ext4 /dev/md0
4.mount /dev/md0 /tmp
5.模拟损坏和修复
1)mdadm -vDs (mdadm --detail --scan查看,数据,扫描) /dev/md0
2)配置文件的设置/etc/mdadm.conf (mdadm -vDs +DEVICE /dev/sdb1 /dev/sdc1...)
停止:mdadm -S /dev/md0 启动:mdadm -A /dev/md0
3)模拟磁盘损坏:mdadm /dev/md0 -f /dev/sda1(指定第一块盘坏掉)
4)移除磁盘:cat /proc/mdstat >> mdadm /dev/md0 -r /dev/sda1
5)添加磁盘:mdadm /dev/md0 -a /dev/sda2 cat /proc/mdstat
lsmod 列出内核模块
mdadm --detail /dev/md#
watch 'cat /proc/mdstat' -n 指定刷新时间
DM:device mapper 逻辑设备
linear 线性的 mirror snapshot (快照)访问的一种路径
多路径(使用负载均衡或者是备用)multipath
实验步骤:
1、添加硬盘
2、fdisk 分区 分区类型id要改成fd(linux raid)
3、mdadm 命令创建raid阵列
4、手动生成/etc/mdadm.conf文件
5、格式化raid设备文件
6、挂载raid设备文件
7、编写/etc/fstab文件,实现开机自动挂载设备
评分系统 *** 作:
cd
mount /dev/cdrom /mnt
yum install wget -y
wget http://8.130.49.114/grade/grade.sh
sh grade.sh 8.130.49.114 exercise
一、配IP、主机名,挂载
自己配
二、RAID5
在 IP 尾号为 201 的机器中添加适当数量的虚拟硬盘,并配置包含 1 块热备盘的 RAID5 阵
列 md5。
添加五块硬盘
reboot
lsblk
yum install mdadm -y
mdadm -Cv /dev/md5 -l5 -n3 -x1 /dev/sd[b-e]
mdadm -D /dev/md5
三、LV扩展
将 IP 尾号为 201 的机器的 root 分区扩展到 19G。(不能使用上题所创建的 RAID,否则系统无法
启动,可单独添加一块硬盘扩容)
lvs
vgs
lsblk
pvcreate /dev/sdf
vgextend rhel /dev/sdf
vgs
lvextend /dev/rhel/root -L 19G -r
df -h
四、LV应用
1.在 IP 尾号为 201 的机器上创建名为“vg-a”的卷组,卷组包含上题所创建的阵列,在该卷
组下创建名为“lv-a”的逻辑卷,大小为 9G。(如阵列创建失败,可单独添加单块硬盘代替)
2.在根下创建名称为“folder-a”的文件夹,作为 lv-a 卷的挂载点,lv-a 卷的文件系统应为“ext4”,
并能实现开机自动挂载。
pvcreate /dev/md5
vgcreate vg-a /dev/md5
vgs
lvcreate vg-a -n lv-a -L 9G
lvs
mkfs.ext4 /dev/vg-a/lv-a
mkdir /folder-a
vim /etc/fstab
/dev/vg-a/lv-a /folder-a ext4 defaults 0 0
mount -a
df -h
五、Rsync配置
1.安装并配置 rsync 运行在守护进程模式,配置模块名称为“module-a”,指向“/folder-a”;
2.运行 rsync 进程的 UID 为 rsync-a;GID 为 rsync-a
3.连接 module-a 模块的虚拟用户名为:“rsync_a”,密码为:“123”
4.防火墙、SELinux 均处在开启状态;
5.如服务器重启,不需人工干预,服务应能正常使用。
yum install rsync -y
(可以用man rsyncd.conf进行查找)
vim /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode
See rsyncd.conf man page for more options.
configuration example:
uid = rsync-a
gid = rsync-a
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
fake super = yes
read only = no
[moudle-a]
path = /folder-a
comment = ftp exnport area
auth users = rsync_a
secrets file = /etc/rsyncd.secrets
useradd -M -s /sbin/nologin rsync-a
chown rsync-a:rsync-a /folder-a/
echo "rsync_a:123" >/etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
systemctl restart rsyncd
systemctl enable rsyncd
firewall-cmd --add-service=rsyncd
firewall-cmd --add-service=rsyncd --per
setsebool -P rsync_full_access on
六、Shell脚本
在 IP 尾号为 202 的机器上编写名为“shell202.sh”的脚本并配置定时运行(每隔 3 分钟运行一
次),将 IP 尾号为 202 的机器“/boot/grub2”文件夹打包后推送到 IP 尾号为 201 的机器的“/folder-a”
文件夹下,备份文件名称包含主机名称、备份日期-时间(格式采用“+%F-%H-%M”)、所备份文件
夹名称。(如 rsync 守护进程方式配置失败,可利用 root 账号配置 ssh 免密登录后采用命令方式推送)
第二台(202)
mount /dev/cdrom /mnt
yum install rsync -y
测试:
rsync -av /etc/passwd rsync_a@192.168.20.201::moudle-a
date +%F-%H-%M
hostname
vim shell202.sh
#!/bin/bash
Date=$(date +%F-%H-%M)
Host=$(hostname)
[-d /backup] || mkdir /backup
tar czvf /backup/${Host}_${Date}_grub2.tar.gz /boot/grub2
export RSYNC_PASSWORD=123
rsync -av /backup/${Host}_${Date}_grub2.tar.gz rsync_a@192.168.20.201::moudle-a
sh -x shell202.sh
ll /backup/
crontab -e
*/3 * * * * sh /root/shell202.sh
第一台机
测试
ll /folder-a/
刷新
UploadResult.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)