Centos 系统下RAID 及LVM磁盘操作手册
一 软RAID设置
1.1 Centos系统下面使用mdadm软件实现软件RAID功能
安装 mdadm 软件
yum install mdadm -y
RAID 0 RAID10 RAID5 等类型这里就不再赘述了,通常为了安全我们会使用RAID10 或者RAID5,追求速度使用RAID0
首先准备4块硬盘挂载到机器里面启动
1.2接下来用mdadm命令创建RAID10
[root@origin ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 1047552K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@origin ~]#
C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID 磁盘阵列的名称;-a yes 参数代表自动创建设备文件;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而-l 10参数则代表RAID10方案。
创建磁盘阵列成功之后,下一步就是格式化
1.3 格式化RAID
用mkfs命令格式化RAID磁盘阵列
[root@origin ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
131072 inodes, 523776 blocks
26188 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@origin ~]#
1.4 挂载磁盘阵列
创建目录并挂载磁盘阵列
[root@origin ~]# mkdir /raid
[root@origin ~]# mount /dev/md0 /raid
[root@origin ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 4.5G 14G 26% /
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
/dev/md0 2.0G 6.0M 1.9G 1% /raid
1.5我们还需要把挂载信息写入到配置文件中,使其永久生效
[root@origin ~]# echo "/dev/md0 /raid ext4 defaults 0 0">>/etc/fstab
[root@origin ~]# cat /etc/fstab
...省略部分内容
/dev/md0 /raid ext4 defaults 0 0
这样就把磁盘阵列挂载到了raid目录。
1.6 查看磁盘阵列信息
查看磁盘阵列信息
[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分内容
Number Major Minor RaidDevice State
0 8 32 0 active sync set-A /dev/sdc
1 8 48 1 active sync set-B /dev/sdd
2 8 64 2 active sync set-A /dev/sde
3 8 80 3 active sync set-B /dev/sdf
可以看到4块磁盘阵列中的4块磁盘均已正常工作。
至此,RAID10方案部署完成。
由此可见整个操作流程给添加硬盘----》创建RAID----》格式化----》挂载等步骤非常简单。
二 模拟RAID 中磁盘损坏后修复磁盘阵列
2.1 修复RAID10中坏掉的磁盘
模拟设备损坏
使用mdadm命令的-f参数模拟设备损坏
[root@origin ~]# mdadm /dev/md0 -f /dev/sdd
mdadm: set /dev/sdd faulty in /dev/md0
[root@origin ~]# mdadm -D /dev/md0
/dev/md0:
...省略部分内容
Number Major Minor RaidDevice State
0 8 32 0 active sync set-A /dev/sdc
- 0 0 1 removed
2 8 64 2 active sync set-A /dev/sde
3 8 80 3 active sync set-B /dev/sdf
1 8 48 - faulty /dev/sdd
在确认有一块物理硬盘设备出现损坏而不能继续正常使用后,使用mdadm命令将其移除,然后查看RAID磁盘阵列的状态,发现/dev/sdb磁盘的状态已经改变。
在RAID10级别的磁盘阵列中,当RAID1磁盘阵列中存在一个故障盘时并不影响RAID10 磁盘阵列的使用。当购买了新的硬盘设备后再使用 mdadm 命令来予以替换即可,在此期间我们可以在/RAID目录中正常地创建或删除文件。
由于我们是在虚拟机中模拟的,为了更真实,先重启系统,之后再继续后边的操作。
重启之后发现损坏的盘已经不再磁盘阵列中了
[root@origin ~]# lsblk
2.2 取消磁盘阵列目录挂载
[root@origin ~]# df -h
[root@origin ~]# umount /raid/
添加磁盘,需要先取消挂载
2.3 添加磁盘并加入磁盘阵列
取消挂载之后,我们再用mdadm命令的-a参数添加磁盘
[root@origin ~]# mdadm /dev/md0 -a /dev/sdb
可以看到/dev/sdb设备加入磁盘阵列成功 并正在重建数据复制中,等一会再看看状态就正常了
2.4 重新挂载磁盘阵列
可以看到磁盘阵列/dev/md0又成功挂载到/raid目录了。
至此就模拟出设备坏掉之后,重新用新磁盘修复的过程。
三 LVM逻辑磁盘空间扩展磁盘合并
3.1 LVM的常见名词
下面这些概念需要多看几遍理解方便后面操作:
PP (physical partition)是LVM中用于划分物理卷的最小单位,它是物理卷的基本构成单元,类似于磁盘分区中的扇区
物理卷(PV,Physical Volume):物理卷是指硬盘上的一个分区或整个硬盘,用于创建卷组和逻辑卷。
卷组(VG,Volume Group):卷组是由一个或多个物理卷组成的逻辑磁盘,它是逻辑卷的容器。
逻辑卷(LV,Logical Volume):逻辑卷是在卷组上划分出来的逻辑单位,它可以格式化为文件系统,并可以挂载到指定的目录上。
PE(Physical Extent):物理区块是LVM中的基本单位,它是物理卷和卷组之间的桥梁,用于管理逻辑卷。
LE(Logical Extent):逻辑区块是逻辑卷的基本单位,它是逻辑卷和文件系统之间的桥梁,用于管理文件系统。
创建LVM的步骤
3.2 LVM常见的命令
LVM的常见命令主要包括Pv、Vg、Lv三个部分,分别对应LVM的物理卷、卷组和逻辑卷。
具体命令如下:核心命令 多看几遍熟记下来
物理卷命令(pv)
pvcreate:创建物理卷,初始化物理卷为LVM格式,例如:pvcreate /dev/sdb1
pvremove:删除物理卷,将物理卷上的数据删除并还原为原始状态,例如:pvremove /dev/sdb1
pvdisplay:显示物理卷的详细信息,例如:pvdisplay /dev/sdb1
卷组命令(vg)
vgcreate:创建卷组,将多个物理卷放到同一个卷组中,例如:vgcreate myvg /dev/sdb1 /dev/sdc1
vgextend:扩展卷组,将新的物理卷加入到已有卷组中,例如:vgextend myvg /dev/sdd1
vgreduce:缩小卷组,将某个物理卷从卷组中移除,例如:vgreduce myvg /dev/sdb1
vgremove:删除卷组,将卷组上的所有逻辑卷和物理卷删除并还原为原始状态,例如:vgremove myvg
vgdisplay:显示卷组的详细信息,例如:vgdisplay myvg
逻辑卷命令(lv)
lvcreate:创建逻辑卷,将卷组中的一部分空间分配给逻辑卷
例如:lvcreate -L 10G -n mylv myvg
lvextend:扩展逻辑卷,将卷组中的剩余空间分配给逻辑卷
例如:lvextend -L +5G /dev/myvg/mylv
lvreduce:缩小逻辑卷,将逻辑卷的空间缩小到指定大小
例如:lvreduce -L 2G /dev/myvg/mylv
lvremove:删除逻辑卷,将逻辑卷上的数据删除并还原为原始状态
例如:lvremove /dev/myvg/mylv
lvdisplay:显示逻辑卷的详细信息
例如:lvdisplay /dev/myvg/mylv
文字描述创建LVM的步骤
准备磁盘
安装新硬盘或使用已有硬盘。
对磁盘进行分区(可选),切割出物理卷的空间。
初始化物理卷
使用pvcreate命令将物理卷格式化为LVM格式
创建卷组
使用vgcreate命令将多个物理卷组成卷组
创建逻辑卷
使用lvcreate命令将卷组中的一部分空间分配给逻辑卷
格式化逻辑卷
使用mkfs命令将逻辑卷格式化为文件系统
挂载逻辑卷
使用mount命令将逻辑卷挂载到指定目录
设置开机自动挂载
将挂载信息写入/etc/fstab文件,以便开机自动挂载
3.3 LVM操作示例
给centos / 根目录扩展磁盘空间。
sda磁盘增加一个主分区 调整格式为lvm格式 按照以下方式操作
分区查看
fdisk /dev/sda
n 增加分区
p 增加主分区
按照提示操作
t 变更分区ID
L 选择分片 8e
w保存退出
加载分区表
partprobe (加载后免重启操作)
[root@harbor ~]# fdisk -l (查看到新增得主分片 dev/sda3
Disk /dev/sda: 375.8 GB, 375809638400 bytes, 734003200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d4fd7
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 419430399 208665600 8e Linux LVM
/dev/sda3 419430400 734003199 157286400 8e Linux LVM
默认安装centos后使用了LVM格式故已经有卷组了
先创建PV
pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created.
vgs 查看
[root@harbor ~]# sudo vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- <199.00g 4.00m
把sda3加入到LVM组中
其中 centos 为vg组名称,请根据具体情况填写
[root@harbor ~]# sudo vgextend centos /dev/sda3
Volume group "centos" successfully extended
vgs 查看
[root@harbor ~]# sudo vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz--n- 348.99g 150.00g
其中 centos 为vg组名称,请根据具体情况填写
扩展lv
先将 /dev/sda3 扩展到 /dev/mapper/centos-home(这个根据你自己需要扩展的目标填写)
[root@harbor ~]# lvextend /dev/mapper/centos-home /dev/sda3
Size of logical volume centos/home changed from 133.24 GiB (34110 extents) to <283.24 GiB (72509 extents).
Logical volume centos/home successfully resized.
其中 /dev/sda3 为 pv 的名称
不带参数默认扩展所有Free空间,可以通过 -L 参数指定具体扩容的大小(单位为“kKmMgGtT”字节)
例如扩展1024兆空间的命令为:lvextend -L +1024M /dev/mapper/centos-home /dev/sda3
xfs在线扩容
[root@harbor ~]# df -T 查看 磁盘格式 为 xfs
扩容:
xfs_growfs /dev/mapper/centos-home
df -kh 确认扩容情况 完成
以上是 LVM磁盘扩展操作各位参考,不到之处欢迎有问题评论区指正!