- RAID磁盘冗余阵列
- 部署磁盘阵列
- 损坏磁盘阵列及修复
- 磁盘阵列+备份盘
- LVM逻辑卷管理器
- 部署逻辑卷
- 扩容逻辑卷
- 缩小逻辑卷
- 逻辑卷快照
- 删除逻辑卷
RAID磁盘冗余阵列
1988年 由美国加利福尼亚大学伯克利分校研究提出该技术
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果,任何事物都有它的两面性。RAID技术确实具有非常好的数据冗余备份功能,但是它也相应地提高了成本支出
硬件速度排名顺序:cpu 南桥北桥 内存 硬盘
硬盘一直是计算机发展瓶颈,所以出现众多磁盘技术,阵列,SSD,DC闪存
RAID核心特性:(Redundant Array of Independent Disks,独立冗余磁盘阵列)
可用性 --安全
高性能 -- 速度
RAID分类:
RAID0
组成条件:两块硬盘
数据写入规则:双盘均分差异化写入
优势:读写速度提高两倍以上
劣势:没有备份,安全性降低,数据容易丢失
成本:不变,100%利用
RAID1
组成条件:两块硬盘
数据写入规则:双盘同时写入双份
优势:安全性提升两倍
劣势:数据双份分布写入cpu速度下降 (磁盘读写速度不变)
成本:提高两倍,50%利用率
RAID5
组成条件:三块硬盘以上
数据写入规则:每一数据写入会同时写入数据奇偶校验和保存在其他硬盘上
优势:速度,安全性再次提升,故障后可通过奇偶校验和恢复
劣势:没有革命性的突破,是速度/安全/成本的平衡妥协与均衡提升
成本:小幅提升
RAID10
组成条件:四块硬盘以上,(是由RAID1和RAID0组成的)
数据写入规则:两两之间做RAID1,两组RAID1又组成RAID0
优势:安全和速度提升,容许最大50%的损坏率
劣势:
成本:提升两倍
种存 由于RAID 10技术继承了RAID 0的高读写速度和RAID 1的数据安全性,在不考虑成本的情况下RAID 10的性能都超过了RAID 5,因此当前成为广泛使用的一储技术。
热备盘 (平常处于闲置状态,无限数量)
检测到阵列组中硬盘故障可利用在线热备盘自动补位去同步数据
部署磁盘阵列
部署软件RAID
mdadm命令用于管理Linux系统中的软件RAID硬盘阵列,格式为“mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”
mdadm命令的常用参数和作用
参数 |
作用 |
-a |
检测设备名称 |
-n |
指定设备数量 |
-l |
指定RAID级别 |
-C |
创建 |
-v |
显示过程 |
-f |
模拟设备损坏 |
-r |
移除设备 |
-Q |
查看摘要信息 |
-D |
查看详细信息 |
-S |
停止RAID磁盘阵列 |
接下来,使用mdadm命令创建RAID 10,名称为“/dev/md0”。
添加硬盘:
利用sd中的4块盘(编号c-f) 做raid10
其中,-C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID磁盘阵列的名称;-a yes参数代表自动创建设备文件;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而-l 10参数则代表RAID 10方案;最后再加上4块硬盘设备的名称
创建raid10阵列:
mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sd[c-f]
mdadm -Q /dev/md0 查看磁盘阵列简要信息
mdadm -D /dev/md0 查看磁盘阵列详细信息
磁盘太小的情况下就不用再分区
raid10分区格式化:
格式化为xfs文件系统格式
mkfs.xfs /dev/md0
挂载raid分区:
mkdir /checkpoint 新建挂载点
mount /dev/md0 /checkpoint 将磁盘阵列挂载到checkpoint(或者用mount -a也可以自动挂载到挂载点)
df-h 查看挂载的设备
/dev/md0 4.0G 33M 4.0G 1% /checkpoint
vim/etc/fstab 编辑文件写入永久挂载配置
/dev/md0 /checkpoint xfs defaults 0 0
损坏磁盘阵列及修复
模拟硬盘损坏一块
mdadm -f /dev/md0 /dev/sdd 命令删除硬盘
或者手动移除均可
删除后报错提示:
mdadm -D /dev/md0 查看硬盘损详细情况
umount /dev/md0 /checkpoint/ 卸载挂载目录
mdadm /dev/md0 -a /dev/sdd 将删除的硬盘添加回来
磁盘阵列+备份盘
现在创建一个RAID 5磁盘阵列+备份盘。在下面的命令中,参数-n 3代表创建这个RAID 5磁盘阵列所需的硬盘数,参数-l 5代表RAID的级别,而参数-x 1则代表有一块备份盘。当查看/dev/md0(即RAID 5磁盘阵列的名称)磁盘阵列的时候就能看到有一块备份盘在等待中了。
-n 3 ----3块盘 -x1 ----1块备份盘
创建raid5阵列+1块热备盘:
mdadm -Cv /dev/md0 -n 3 -l 5 -x1 /dev/sd[b-e]
raid5分区格式化:
格式化为xfs文件系统格式
mkfs.ext4 /dev/md0
挂载raid5分区:
mkdir /ccie 新建挂载点
mount /dev/md0 /ccie 挂载到ccie目录
模拟硬盘损坏一块:
mdadm -f /dev/md0 /dev/sdd 命令删除硬盘
umount /dev/md0 /ccie/ 卸载挂载目录
mdadm /dev/md0 -a /dev/sdd 将删除的硬盘添加回来触发RAID5自动恢复
LVM(Logical Volume Manager 逻辑卷管理器)
磁盘底层逻辑合并卷组
磁盘分区大小 动态调整
前面学习的硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了。换句话说,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制。这时就需要用到另外一项非常普及的硬盘设备资源管理技术了—LVM(逻辑卷管理器)。LVM可以允许用户对硬盘资源进行动态调整。
逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和布局,就可以实现对硬盘分区的动态调整。LVM的技术架构如图
做完lvm后的磁盘路径 : /dev/VG卷组/LV逻辑卷
physical hard disk 物理硬盘
PV 创建物理卷 让硬盘支持LVM技术
VG 合并后的一个大的卷组
LV 切割的逻辑卷
PE 是LV中最小单位(1PE=4M)
物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。这就是LVM的核心理念
不支持xfs分区格式的管理
xfs有独立的管理方式
xfs不支持缩小空间
部署逻辑卷
一般而言,在生产环境中无法精确地评估每个硬盘分区在日后的使用情况,因此会导致原先分配的硬盘分区不够用或者超分配需要缩减的情况
我们可以通过部署LVM来解决上述问题。部署LVM时,需要逐个配置物理卷、卷组和逻辑卷。常用的部署命令如表
常用的LVM部署命令
功能/命令 |
物理卷管理 |
卷组管理 |
逻辑卷管理 |
扫描 |
pvscan |
vgscan |
lvscan |
建立 |
pvcreate |
vgcreate |
lvcreate |
显示 |
pvdisplay |
vgdisplay |
lvdisplay |
删除 |
pvremove |
vgremove |
lvremove |
扩展 |
|
vgextend |
lvextend |
缩小 |
|
vgreduce |
lvreduce |
在虚拟机中添加两块新硬盘设备,目的是为了更好地演示LVM理念中用户无需关心底层物理硬盘设备的特性。我们先对这两块新硬盘进行创建物理卷的操作,可以将该操作简单理解成让硬盘设备支持LVM技术,或者理解成是把硬盘设备加入到LVM技术可用的硬件资源池中,然后对这两块硬盘进行卷组合并,卷组的名称可以由用户来自定义。接下来,根据需求把合并后的卷组切割出一个约为150MB的逻辑卷设备,最后把这个逻辑卷设备格式化成EXT4文件系统后挂载使用
ll /dev/sd* 枚举所有硬盘,找到新加的两个硬盘
pvcreate /dev/sdb /dev/sdc 在sdb和sdc上创建物理PV
vgcreate ccie /dev/sdb /dev/sdc 将两个物理PV卷加入名为ccie的VG卷中
vgdisplay 查看vg卷信息
切割逻辑卷两种创建和计量方式:以基本pe单元大小为倍数单位和指定容量
lvcreate -n bgp -l 100 ccie 从ccie vg卷中取出100个PE ,单个PE4M, 也就是400M空间来 创建一个名为bgp的逻辑卷
lvcreate -n ospf -L 300M ccie 从ccie vg卷中指定取出300M空间来 创建一个名为ospf的逻辑卷
把生成好的逻辑卷进行格式化,然后挂载使用
Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件---即/dev/卷组名称/逻辑卷名称
mkfs.ext4 /dev/ccie/bgp 格式化lv逻辑卷位bgp为 ext4格式
mkdir /oneplus 创建oneplus挂载目录
mount /dev/ccie/bgp /oneplus/ 将lv逻辑卷挂载到oneplus挂载点
/dev/ccie/bgp /oneplus ext4 defaults 0 0 vim /etc/fstab 配置永久挂载
扩容逻辑卷
umount /oneplus 卸下挂载
lvextend -L 900M /dev/ccie/bgp 扩容到900M
e2fsck -f /dev/ccie/bgp 检查硬盘完整性,并执行扩容动作重置硬盘容量
resize2fs /dev/ccnp/ospf 同步扩容信息到内核
mount -a 自动重新挂载上
df -h 查看扩容后的信息
缩小逻辑卷
umount /cisco 卸下挂载
e2fsck -f /dev/ccie/bgp 检查文件系统完整性
resize2fs /dev/ccie/bgp 100M 把逻辑卷vo的容量减小到100MB
mount -a 再次挂载上
df -h 查看缩减后的信息
逻辑卷快照
LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原。
LVM的快照卷功能有两个特点:
1.快照卷的容量必须等同于逻辑卷的容量
2.快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除
用重定向往逻辑卷设备所挂载的目录中写入一个文件
echo "hello word" > /oneplus/123.txt
1.使用-s参数生成一个快照卷,使用-L参数指定切割的大小。另外,还需要在命令后面写上是针对哪个逻辑卷执行的快照操作 (针对bgp逻辑卷做一次性快照, -n 后面KZ1为快照名称 )
lvcreate -L 80M -s -n KZ1 /dev/ccie/bgp
2.在逻辑卷所挂载的目录中创建一个50MB的垃圾文件,然后再查看快照卷的状态。可以发现存储空间占的用量上升了
dd if=/dev/zero of=/oneplus/testfires count=1 bs=50M
3.删除oneplus中的文件
rm -rf xxx.txt
4.为了校验KZ1快照卷的效果,需要对逻辑卷进行快照还原操作。在此之前记得先卸载掉逻辑卷设备与目录的挂载
lvconvert --merge /dev/ccie/KZ1
删除逻辑卷
当生产环境中想要重新部署LVM或者不再需要使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒
1.取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数
umount /oneplus/
vim /etc/fstab 删除挂载配置
2.删除逻辑卷设备,需要输入y来确认操作
lvremove /dev/ccie/bgp
3.删除卷组,此处只写卷组名称即可,不需要设备的绝对路径,需要输入y来确认操作
vgremove ccie
4.删除物理卷设备
pvremove /dev/sdb /dev/sdc
生产环境中加硬盘来扩容ccie卷组时配置:
vgextend ccie /dev/sdc
扩容不需要格式化
来源:oschina
链接:https://my.oschina.net/u/3115396/blog/3189957