磁盘阵列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/md1
MD: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/sda7
3、监控模式
-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