--------------------------------RAID------------------------------
磁盘阵列RAID,RedundantArrays of Inexpensive Disks,即容错廉价磁盘阵列 (图片考虑鸟哥linux私房菜基础篇第三版--P464)级别:仅代表磁盘组织方式不同,没有上下之分;
RAID-0:(等量模式,stripe):性能最佳-------条带
性能提升,几乎接近n倍:读,写----将完整数据切割成n份,同时分开存入n个磁盘 冗余能力(容错能力),没保证--损坏一个磁盘,整个数据文件将丢失 空间利用率:nS 至少需要2块盘 RAID-1:让一份完整的数据保存在两块磁盘上边---镜像 性能表现:写性能下降,读性能提升 冗余能力:有 空间利用率:1/2---整体RAID的容量几乎少了50% 至少2块盘 RAID-5:轮流校验盘 性能表现:读,写提升 冗余能力:有 空间利用率:(n-1)/n 至少需要3块 RAID-5有同位检查码,所以其总容量会是整体磁盘数量减1块,而当其中磁盘损毁的数量大于等于2的时候,整组就会损毁。 RAID 1+0 就是将RAID-0 RAID-1 组合起来 先1后0 比较考虑使用这个。 性能表现:读,写提升 冗余能力:有 空间利用率:1/2 至少需要4块 RAID 0+1 就是将RAID-0 RAID-1 组合起来 先0后1 性能表现:读,写提升 冗余能力:有 空间利用率:1/2 至少需要4块 RAID-50 先5 后0 性能表现:读,写提升 冗余能力:有 空间利用率:(n-1)/n 至少需要6块 jbod:多块盘叠加-将多个小盘组合成一个大盘,不分割数据和盘,盘满便叠加 性能提升:无 冗余能力:有 空间利用率100% 至少需要2块 软件磁盘阵列: 通过系统仿真,因此使用的设备文件名是系统的设备文件,文件名为/dev/md0,/dev/md1 逻辑RAID: /dev/md# /dev/md1MD:Multi Device,多设备 用户空间工具,管理工具
mdadm:将任何块设备做成RAID
模式化的命令: 1、创建模式 -C 专用选项: -l:级别 -n:设备个数 -a {yes|no}:自动为其创建设备文件 -c:CHUNK大小(字符串),2^n默认为64k -x #:指定空闲盘个数 2、管理模式 -a|--add,-r|--remove ,-f|--fail--set-faulty mdadm /dev/md# --fail /dev/sda73、监控模式
-F 4、增长模式 -G 5、装配模式 -A 查看RAID阵列的详细信息 mdadm -D /dev/md# --detail 停止阵列: mdadm -S /dev/md# --stop watch:周期性的执行某命令,并以全屏方式显示结果 -n #:指定周期长度,单位为秒,默认为2 watch -n # 'COMMAND' mdadm -D --scan > /etc/madam.conf 将当前RAID信息保存至配置文件,以便以后进行装配 例子:创建RAID-0 2G: fdisk创建2个1G的分区,t 调整类型为 fd 完事记得重读 partprobe /dev/sda cat /pro/partitions确保下是否识别两个新建的分区 mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6} cat /pro/mdstat 会显示当前系统上处于启用的RAID设备 mke2fs -j /dev/md0 任何一个存储空间需要格式化,挂载 mount /dev/md0 /mnt ls /mnt可以查看是否挂载(出现lost+found) 创建RAID1 2G fdisk创建2个2G的分区,L 调整类型为 fd 完事记得重读 partprobe /dev/sda cat /pro/partitions mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sda{7,8} cat /pro/mdstat (会显示进度%) mke2fs -j /dev/md1 mount /dev/md0 /media ls /media 模拟损坏一块RAID1的一块磁盘 mdadm /dev/md1 --fail /dev/sda8 查看下md1的信息 mdadm --detail /dev/md1 cd进去/media/文件,看看是否能cat inittab (可以使用) 因为8被模拟损坏,所以需要移除 mdadm /dev/md1 -r /dev/sda8 重新detail 其状态为remove 现在将新的分区加进来 mdadm /dev/md1 -a /dev/sda9 查看detail 显示正在恢复 停止阵列 mdadm -S /dev/md1 重新启用 mdadm -A /dev/md1 /dev/sda7 /dev/sda9 可以-D查看 ####假如在md1里面多加入一块分区 mdadm -a /dev/sda7 其中已有2块磁盘为好的,这位第三块,显示状态为space即为空闲 那么此时将sda8模拟下线, mdadm /dev/md1 -f /dev/sda8 mdadm -D /dev/md1 查看7正在同步,而8显示为损坏的空闲盘 watch 'cat /proc/mdstat' 可以自动2秒刷新一次同步的进度 mdadm -D --scan > /etc/madam.conf 将当前RAID信息保存至配置文件,以便以后进行装配 ------------------------------DM-LVM--------------------------------- LVM:叫做逻辑卷管理器,做法是将几个物理分区通过软件组合成为一块看起来是独立的大磁盘,然后将这块大磁盘在经过分成为可以使用的分区LV PhysicalVolume,PV,物理卷 系统标示符为8e VolumeGroup,VG,卷用户组 Physical Extend,PE,物理扩展块 默认使用4MB而LVM的VG最多仅包含有65534个PE,因此默认的LVMVG会有4M*65534/(1024M/G)=256G。 LogicalVolume,LV逻辑卷 LVM最主要的用处是在实现一个可以天性调整容量的文件系统上么人不是在新建一个性能为主的磁盘上 例子: fdisk /dev/sda 创建1个7G的分区,1个3G的分区(多余创建1个5G的),t 调整类型为 8e 完事记得重读 partprobe /dev/sda cat /pro/partitions确保下是否识别两个新建的分区 PV的创建 pvcreate /dev/sda{10,11} (pvs可以查看当前系统的pv...pvdisplay详细) (pvscan扫描当前系统的pv) VG的创建 vgcreate myvg /dev/sda{10,11} (vgs可以查看当前系统的vg...vgdisplay详细) (vgscan扫描当前系统的vg) (-s可以指定PE的大小,默认是4M vgcreate VG_NAME ) 删除vg(如果vg上已经创建了LV并且已经存了数据,那么它不能直接删除) vgremove myvg 重新创建PE为8M的VG vgcreate -s 8M myvg /dev/sda{10,11} VG的缩减(就是将其中的PV去除,也就是要将PV中的PE挪走) pvmove /dev/sda11 vgreduce myvg /dev/sda11 pvs查看可看到sda11没有VG组,然后 pvremove /dev/sda11 VG的扩展 pvcreate /dev/sda12 vgextend myvg /dev/sda12 将12加入VG myvg中 LV的创建 lvcreate -L 50M -n textlv myvg lvs查看.lvdisplay mke2fs -j /dev/myvg/textlv 格式化 mount /dev/myvg/textlv /mnt 挂载-----lv /dev/mapper可查看真正的设备文件名 ls /mnt 移除LV 先解除挂载 umount /mnt 然后移除 lvremove /dev/myvg/textlv 扩展逻辑卷-----先扩展物理,然后再增加逻辑卷 lvextend(扩展物理) -L [+]#(+的作用是代表扩展到还是扩展为,不带+是扩展为) resize2fs(扩展逻辑) resize2fs /PATH/TO/LV 5G扩展到5G resize2fs -p /PATH/TO/LV 修复逻辑卷的边界为最大 lvcreate -L 2G -n testlv myvg mke2fs -j /dev/myvg/textlv mkdir /user vim /etc/fstab << /dev/myvg/testlv /users ext3 default,acl 0 0 mount -a mount cd /users ls cp /etc/inittab . ls cat inittab(可用) df -h lvextend -L 5G /dev/myvg/testlv (vgs确保空间够用) df -lh lvs (结果显示只扩展了物理边界,没扩展逻辑的) resize2fs -p /dev/myvg/testlv df -lh 显示正确 (处于挂载中的 不用卸载可直接扩展)缩减逻辑卷
注意: 1、不能在线缩减,得先卸载; 2、确保缩减后的空间大小依然能存储原有的数据; 3、在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态; resize2fs resize2fs /PATH/TO/PV 3G lvreduce -L [-]# /PATH/TO/LV 重新挂载 df -lh 查看空间多少, umount /users mount 查看卸载完成否 e2fsck -f /dev/myvg/testlv 强制文件系统检查 resize2fs /dev/myvg/testlv 3G 缩减至3G lvreduce -L 3G /dev/myvg/testlv 缩减边界 mount -a mount df -lh 使用快照卷 1、生命周期为整个数据时长,在这段时长内,数据的增长量不能超出快照卷大小; 2、快照卷应该是只读的; 3、跟原卷在同一卷组内; 创建快照卷 lvcreate -s 表示其为快照卷 -p r|w 设定权限为只读r lvcreate -L # -n SLV_NAME -s -p r /PATH/TO/LV lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testly mount /dev/myvg/test-snap /mnt cd /mnt ls 显示挂载完成 cat inittab | wc-l 显示50 tar -jcf /tmp/users/tar.bz2 inittab备份下镜像 ls /tmp 删除快照 umount /mnt lvremove /dev/myvg/testlv-snap 还原备份快照 tar xf /tmp/users/tar.bz2 -C ./ ls