entos 7软raid的实现:md,dmadm
-
组成:
内核模块:md (multi devices)
用户管理工具:mdadm -
命令使用:
模式化的命令:mdadm [mode] < raiddevice > [options] < component-device >
支持的raid级别:linear,raid0,raid1,raid4,raid5,raid6,raid10raiddevice:/dev/md#(创建的设备在重启后设备文件名可能变化); component-device:任意块设备; #cat /proc/mdstat :查看当前内核识别到的软raid设备; Note:块设备分区格式要设置为fd格式,不然可能会造成raid设备虽然可用,但无法装配;
模式:
创建:-C(create) 装配:-A(assemble)(扫描磁盘已有的软raid信息并组合) 监控:-F(follow or monitor) 管理:-f,-r,-a等 -C:创建模式; -l #:raid级别; -n #:raid的块设备个数; -x #:备用磁盘个数; -c #:chunk大小 -a yes/no:是否自动创建设备文件; -D:查看raid设备的详细信息; 管理模式: -f:模拟块设备故障; -r:移除raid中块设备; -a:向raid中添加块设备; -S:停止设备
lvm逻辑卷:
-
version:
version 2(centos 7) dm:device map pv:组成逻辑卷的任意物理块设备; lv:逻辑卷,在vg之上划分的可用卷; vg:多个物理块设备组成的逻辑卷组; pe:vg属性,定义卷组中的chunk大小; 设备文件:/dev/mapper/vg_name-lv_name <--- /dev/vg_name/lv_name
-
管理工具:
pv管理:pvs、pvdisplay、pvcreate、pvmove
pvs、pvdisplay:显示pv设备详细信息; pvcreate、pvremove:创建或删除pv设备 pvmove:把某pv的数据移出(vg缩减时会用到) resize2fs:重置ext系统文件系统的大小;
vg管理:vgs、vgdisplay、vgcreate、vgremove、vgextend、vgreduce
vgs、vgdisplay:显示vg信息 vgcreate vg-name pv-name1 pv-name2 。。。:创建vg; -s # :指定pe大小; vgremove vg-name:删除vg(要先删除lv); vgextend vg-name pv-name1 pv-name2。。。:扩展vg; vgeduce vg-name pv-name :缩减vg(要先pvmove); pvmove pv-name:将指定pv的数据移出至其所在vg的其他块设备中;
lv管理:lvcreate、lvremove、lvextend、lvreduce
lvcreate -n lv-name vg-path/name -L size:创建lv; -n NAME:指定lv名称 -L size:指定lv大小; vg-path/name:指定vg设备文件或名称; -s:指定创建为snapshot volume(快照卷) -p r/rw:权限为只读或读写; 创建快照卷: lvcreate -s -L size -n snap-name -p r/rw lv-path NOTE:快照卷必须和原卷在同一卷组; 扩展lv: 1、umount lv卷; 2、fsck -f lv卷; 3、lvextend lv-name -L【+】size,扩展lv卷size或到size; 4、resize2fs lv-name:扩展lv卷文件系统至卷边界; 缩减lv: 1、umount lv卷; 2、备份数据(lv卷的扩展缩减操作风险较大,一般建议先备份); 3、fsck -f lv卷; 4、resize2fs lv-name size,缩减lv卷size或到size; 5、lvreduce lv-name -L【-】size,缩减lv卷边界size或到size; 6、NOTE:缩减后的文件系大小不能大于缩减后卷的大小;否则文件系统可能损坏 7、RECOMMEND:缩减文件系统为大小时,比预定目标小;缩减卷大小时,缩减至目标大小; 缩减完成后,resize2fs文件系统至卷边界;
dd命令:转换和复制工具(块级别的复制,不同于cp文件级别的复制)
用法:dd if=/source/file of=/destination/file -bz=# :指定block size大小; -count=#:指定块数量 e,g:磁盘对克 dd if=/dev/sda of=/dev/sdb e,g备份mbr: dd if=/dev/sda of=/tmp/mbr.bk count=1 bs=512 e,g清除分区表: dd if=/dev/zero of=/dev/sdb bs=512 count=1
备忘:
1、watch 【options】 command:循环执行某命令
-n#:循环执行命令的时间间隔;
练习:
1、创建一个可用空间为10G的raid1设备, 要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录;
2、创建一个可用空间为10G的raid0设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录;
3、创建一个至少有两个pv组成的大小为20G的名为testvg的VG,要求PE大小为16MB;创建5G的lv卷testlv挂载至/users目录;
4、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux目录,复制/etc/pam.d目录至自己的家目录;
5、扩展testlv至7G,要求archlinux用户的文件不能丢失;
6、收缩testlv至3G,要求archlinux用户的文件不能丢;
7、对testlv创建快照,并尝试基于快照备份数据,验证快照的功能;
疑问:
1、centos 7组软raid的设备在停止raid后,设备上依然有软raid信息(cat /proc/mdstat,显示inactive)
开机并重启后,会自动读取块设备上的软raid信息,块设备无法为其他程序使用;如何清除?