磁盘管理(disk manage) - 01-16-AM
RAID磁盘阵列
应用场景:公司购买了5块2G的硬盘,要求工程师将这5块硬盘用某种技术从逻辑上组合成一个大
容量的存储空间(如2G*5=10G)。此时我们就需要用到raid磁盘阵列或LVM逻辑卷管理技术。
Raid:是冗余磁盘阵列的缩写,简称磁盘阵列。
Raid功能:提供了容量组合、高读写性能、同步备份等功能。
raid实现方式:
硬raid:用raid磁盘阵列卡来实现。通过raid卡专用的软件来管理磁盘。在开机时按某个快捷键就可以进
入raid卡的管理软件界面。只需要在界面中选择raid等级和磁盘即可创建出所需要的raid设备。
软raid:用操作系统中提供的raid软件来实现磁盘阵列功能。成本低,性能比硬Raid低,因为软raid会占
用一定的cpu资源。
注意:标准的机架式服务器上的硬盘通常需要先将硬盘通过raid管理界面转换成逻辑盘,然后才能在装系
统时识别到这些硬盘。
服务器的类型:塔式、机架式、刀片式。
服务器的应用级别:入门级、部门级、企业级等。
Raid等级:(根据功能不同来分类)n为单块硬盘的容量
等级号 名称 硬盘数 总容量 允许坏盘数(最大值) 功能
0 条带化 >=2块 2n+n 0块(冗余) 高读写性能
,容量组合
1 镜像化 =2块 n 1块(冗余) 同步备份,
数据安全
5 分布式奇偶校验的条带化 >=3块 3n-n 1块(冗余) 高读写性能
,数据安全
6 双组分布式奇偶校验的条带化 >=4块 4n-2n 2块(冗余) 高读写性能
,数据安全
10 镜像化+条带化 4+2n块 总容量的50% 坏一半(冗余) 容量组合+同
步备份
linux系统中的软raid管理工具软件:mdadm
查mdadm命令由哪个Rpm包提供:yum provides mdadm
查软件是否安装了:rpm -q mdadm
安装mdadm软件:yum install -y mdadm
mdadm命令选项:
-C 即create,创建raid设备
-l 即level,指定raid等级号,等级可以是0、1、5、6、10等
-n 即number,指定raid中的磁盘设备数量
-x 即spare空格,指定raid设备中的热备(备胎、替补)磁盘数量
-D 即detail详细,显示raid设备的详细信息
-s 即scan扫描,扫描出系统中所有的raid设备
-v 即verbose,显示执行过程
-S 即stop,停用指定的raid设备
-A 即active,激活(启用)指定的raid设备
-a 即add,在指定的raid设备组中添加新的成员
-f 即faulty错误的,指定raid设备组中有故障的磁盘
-r 即remove移除,在指定的raid设备组中删除有故障的磁盘
练习准备:将linux虚拟机关机,给虚拟机添加5块SCSI接口的2GB的硬盘,创建快照“5块2G硬盘”,然后
将虚拟机开机,执行lsblk命令显示磁盘块设备列表。
Raid练习:要求将linux系统虚拟机的5块2G的硬盘用raid 5进行管理,将前4块硬盘组建成一个名称为md5
的Raid 5,其中raid 5的活动磁盘为前3块硬盘,第4块硬盘做为热备(备胎、替补)磁盘。
操作思路:
显示磁盘设备列表:lsblk
显示raid设备列表:mdadm -Dsv
创建名称为md5的raid 5设备:mdadm -C md5 -l 5 -n 3 -x 1 /dev/sd{b..e}
显示名称为md5的raid 5设备的详细信息:mdadm -D /dev/md/md5
显示raid设备列表:mdadm -Dsv
生成raid配置文件:mdadm -Dsv > /etc/mdadm.conf
附加操作:
显示磁盘设备列表:lsblk
停用md5这个raid设备:mdadm -S /dev/md/md5
启用md5这个raid设备:mdadm -A /dev/md/md5
警告:要想在停用raid设备之后再启用,必须保证mdadm.conf配置文件存在。
练习:模拟md5这个Raid5设备中的sdc硬盘损坏,然后从md5阵列中移除sdc这个成员,然查看md5设备的详
细信息。将sdc硬盘从服务器上拆下,再装一块新硬盘到Sdc硬盘的槽位上。再将sdf硬盘加入到md5这个
raid 5设备组中。
显示名称为md5的raid 5设备的详细信息:mdadm -D /dev/md/md5
指定sdc硬盘为坏盘(fail):mdadm /dev/md/md5 -f /dev/sdc
显示名称为md5的raid 5设备的详细信息:mdadm -D /dev/md/md5
将sdc硬盘从md5这个raid组中移除(remove):mdadm /dev/md/md5 -r /dev/sdc
将sdf硬盘添加(add)到md5这个raid组中:mdadm /dev/md/md5 -a /dev/sdf
显示名称为md5的raid 5设备的详细信息:mdadm -D /dev/md/md5
练习:执行lsblk命令,再查看md5这个Raid设备的详细信息,然后将其停用,用lsblk显示块设备信息,删
除/etc/mdadm.conf配置文件。
练习:linux服务器上有5块2G的硬盘,要求用raid技术将sdc、sdd、sde硬盘创建一个名称为md1的raid1
设备,其中的sde硬盘作为热备磁盘,显示md1设备的详细信息,执行lsblk命令,创建mdadm.conf配置文
件。
练习:将上一个练习的md1这个raid设备格式化成xfs文件系统,创建/mnt/data目录,然后使用fstab自动
挂载配置文件将/dev/md/md1设备自动挂载到/mnt/data目录,用mount -av做自动挂载测试,用lsblk或
df命令查看已挂载的设备信息。复制/etc/host*文件到/mnt/data目录中。
显示raid设备列表:mdadm -Dsv
格式化:mkfs.xfs /dev/md/md1
创建目录:mkdir -pv /mnt/data
fstab自动挂载:vi /etc/fstab 添加如下内容
/dev/md/md1 /mnt/data xfs defaults 0 0
自动挂载测试:mount -av
显示已挂载的设备:lsblk 或 df
复制文件:cp -v /etc/host* /mnt/data/
Raid小结:
1.什么是raid?软raid(通过操作系统提供的软件进行管理)、硬raid(通过Raid硬件卡来实现管理)?
2.常见的Raid等级?每种raid等级的功能是什么,最少需要几块磁盘?
3.raid创建的完整管理流程:创建raid--〉生成mdamd.conf配置文件--〉格式化Raid设备--〉挂载
raid设备--〉写入新数据。
raid的删除管理流程:卸载raid设备--〉停用raid设备--〉删除mdadm.conf配置文件。
4.熟悉在centos系统中用mdadm工具对raid进行查、增、删、改的管理操作。
raid的缺点:
raid阵列组中的后期无法添加新的成员来扩充整体容量。例如,用2块硬盘创建raid 0,后期无
法在raid 0再增加新的硬盘。由此就产生了下面要讲的LVM逻辑卷管理功能。
--
LVM逻辑卷管理:
LVM概念:
LVM的主要功能:容量组合,动态调整容量大小。
LVM是将多块硬盘从逻辑上组合成一个大容量的存储空间(即VG卷组),最终要划分成小的LV逻辑卷来使用
这些空间。
LVM的管理流程:先给硬盘分区(也可以不分区),再创建PV物理卷(volnume),再创建VG卷组,再创建LV
逻辑卷,再mkfs格式化LV,再mount手动或fstab自动挂载LV,再写入数据。
物理磁盘Physical Device: 整个硬盘设备或使用fdisk、cfdisk命令建立的硬盘分区
物理卷(PV,Physical Volume) :用pvcreate在硬盘上创建PE的结果。查PV的结果用pvdisplay。
卷组(VG,Volume Group) :由一个或多个物理卷(PV)组成的整体。
逻辑卷(LV,Logical Volume) :从卷组(VG)中切割出的空间,用于格式化(即创建文件系统),大小
由PE的个数决定。
物理扩展(PE,Physical Extent):是卷组中的最小容量单元,每个PE默认为4MB的基本块。
逻辑扩展(LE,Logical Extent):LV中的最小单元。默认的每个LE大小跟PE的大小一致。
LVM管理的命令表:
功能/命令 物理卷管理 卷组管理 逻辑卷管理
扫描scan pvscan vgscan lvscan
建立create pvcreate vgcreate lvcreate
显示display pvdisplay vgdisplay lvdisplay
状态status pvs vgs lvs
删除remove pvremove vgremove lvremove
扩展(增加容量)extend vgextend lvextend或lvresize
缩容(缩小容量)reduce vgreduce lvreduce或lvresize
调整系统中看到的容量:resize2fs
LVM练习:服务器上有5块2G的硬盘,要求用LVM进行管理。将sdb、sdc创建成PV,再将他们创建成一个名称
为myvg的卷组,在卷组中创建一个3G的名称为mylv的逻辑卷,将mylv格式化成ext4文件系统,将mylv手动
挂载到/mnt/mydata目录中,复制/etc/host*文件到挂载点目录。
LVM的管理流程:先给硬盘分区(也可以不分区),再创建PV物理卷(volnume),再创建VG卷组,再创建LV
逻辑卷,再mkfs格式化LV,再mount手动或fstab自动挂载LV,再写入数据。
显示磁盘块设备列表:lsblk
查PV状态:pvs
创建PV物理卷:pvcreate /dev/sdb /dev/sdc
显示所有的PV详细信息:pvdisplay [/dev/sdb /dev/sdc]
查VG状态:vgs
创建名称为myvg的卷组,将sdb、sdc拉进卷组中:vgcreate myvg /dev/sdb /dev/sdc
查myvg这个VG详细信息:vgdisplay myvg
查看VG状态:vgs
创建容量为3G,名称为mylv的LV逻辑卷:lvcreate -L 3G -n mylv myvg
查LV状态:lvs
查mylv这个LV的详细信息:lvdisplay /dev/myvg/mylv
扫描并显示系统中所有的LV设备:lvscan
格式化:mkfs.ext4 /dev/myvg/mylv
创建挂载点目录:mkdir -pv /mnt/mydata
手动挂载:mount /dev/myvg/mylv /mnt/mydata
显示已挂载的设备信息:lsblk 或 df -h
写入文件:cp -v /etc/host* /mnt/mydata
LVM扩容练习:查看现有的PV、VG、LV状态信息,将sdd和sde加入到myvg这个卷组中,将mylv的容量从3G
调整到7G,将mylv的文件系统容量信息同步更新成7G。
LVM扩容思路:先检查VG的剩余容量,看是否需要扩VG容量,然后扩LV容量,最后刷新LV的文件系统容量值
。
查PV状态:pvs
查VG状态:vgs
查LV状态:lvs
将sdd、sde创建成PV:pvcreate /dev/sdd /dev/sde
查VG状态:vgs
在myvg这个卷组中扩容添加sdd、sde这两个成员:vgextend myvg /dev/sdd /dev/sde
查VG状态:vgs
查LV状态:lvs
将mylv容量扩充为7G:方法一:lvextend -L +4G /dev/myvg/mylv
方法二:lvresize -L 7G /dev/myvg/mylv
查LV状态:lvs
显示磁盘分区的文件系统使用状态:df -h 会发现mylv的容量还是3G,信息不同步
同步文件系统的容量信息:resize2fs /dev/myvg/mylv
显示磁盘分区的文件系统使用状态:df -h 发现mylv的容量变成了7G
--
LVM缩容练习:查看现有的PV、VG、LV状态信息,先将mylv的文件系统容量信息缩减成1G,然后将mylv的
容量从7G调整到1G,手动挂载mylv到/mnt/mydata目录,用ls查看挂载点目录中的文件名列表,并用cat查
看挂载点目录中的hosts文件内容是否正常。将sdb硬盘中的数据迁移到sdd硬盘中,将myvg这个卷组中sdb
、sdc、sde硬盘从组中移除。
LVM缩容思路:先用df -h检查文件系统的使用状态信息,卸载要缩容的LV的文件系统,然后用e2fsck扫描
检查文件系统数据,然后用resize2fs调整文件系统容量,然后缩减lv的容量为文件系统容量值,重新手动
挂载LV。然后缩减VG的容量,删除不需要的PV。
参考步骤:
显示磁盘空间使用状态:df -h
卸载挂载点所对应的设备:umount /mnt/mydata
扫描检查磁盘设备 :e2fsck -f /dev/myvg/mylv
调整文件系统容量为1G:resize2fs /dev/myvg/mylv 1G
显示LV的状态:lvs
LV的容量缩减:
方法一:lvresize -L 1G /dev/myvg/mylv
方法二:lvreduce -L -6G /dev/myvg/mylv
显示LV的状态:lvs
手动挂载指定设备:mount /dev/myvg/mylv /mnt/mydata
显示指定目录的文件列表:ls /mnt/mydata
显示指定文件的全文内容:cat /mnt/mydata/hosts
VG卷组的缩容(缩减容量):
显示VG状态:vgs
显示PV状态:pvs
迁移sdb磁盘的数据到sdd硬盘中:pvmove /dev/sdb /dev/sdd
显示PV状态:pvs
显示VG状态:vgs
卷组的缩容在myvg卷组中移除sdb、sdc、sde这三个成员:vgreduce myvg /dev/sd{b,c,e}
显示VG状态:vgs
显示pvg状态:pvs
--
LVM快照(即snapshot备份)管理:
LVM快照的工作原理:LVM的快照卷也是一个LV逻辑卷,快照卷跟源逻辑卷共享数据,当用户修改
源逻辑卷中的文件时,LVM后台程序会自动将修改之前的文件复制一份到快照卷中。
待续……