磁盘管理(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 后台程序会自动将修改之前的文件复制一份到快照卷中.
待续......
来源: http://www.bubuko.com/infodetail-2922966.html