一、需求场景
将主机的2块数据盘(107GB + 214GB)"合并" 后挂载到 /builed 目录下,要求文件系统格式化为 ext4。
- 数据盘
/dev/sdb:107GB
/dev/sdc:214GB
- 文件系统:ext4
- 挂载目录:/build
- OS版本:CentOS 7.5
- lvm版本:lvm2
二、实现方法
使用 LVM 逻辑卷管理来实现。
二、实现步骤
1. 磁盘分区(parted,非必须)
在将磁盘或者磁盘分区用作物理卷(PV)之前,需要对其进行初始化工作,即进行磁盘分区操作;因磁盘分区需求大于2T,所以 fdisk 命令无法实现管理,需要使用 parted 命令来做磁盘分区管理。
/dev/sdb
# 新建/dev/sdb 的磁盘标签类型为 GPT [root@module ~]# parted /dev/sdb mklabel gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Y
Information: You may need to update /etc/fstab.
# 将/dev/sdb 整个空间分给同一个分区 [root@module ~]# parted /dev/sdb mkpart primary 0 100% Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I Information: You may need to update /etc/fstab.
/dev/sdc
# 新建/dev/sdc 的磁盘标签类型为 GPT [root@module ~]# parted /dev/sdc mklabel gpt
# 将/dev/sdc 整个空间分给同一个分区 [root@module ~]# parted /dev/sdc mkpart primary 0 100% Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I Information: You may need to update /etc/fstab.
2.创建物理卷(pvcreate)
创建物理卷的命令为 pvcreate,利用该命令将希望添加到卷组的所有分区或磁盘创建为物理卷。
将分区 /dev/sdb1 和 /dev/sdc1 分区创建为物理卷:
[root@module ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created. [root@module ~]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created.
3.创建卷组(vgcreate)
创建卷组的命令为 vgcreate,用此命令将使用物理卷创建为一个完整的卷组。
将物理卷 /dev/sdb1 创建为一个名为 vgjenkins 的卷组:
[root@module ~]# vgcreate vgjenkins /dev/sdb1 Volume group "vgjenkins" successfully created
4.添加新的物理卷到卷组中(vgextend)
此步即为将2块磁盘空间合二为一的关键步骤。当系统中新增了磁盘或新建了物理卷,而要将其添加到已有卷组时,就可使用 vgextend 命令。
将物理卷 /dev/sdc1添加到 vgjenkins 卷组中:
[root@module ~]# vgextend vgjenkins /dev/sdc1 Volume group "vgjenkins" successfully extended
5.查看卷组(vgs)
查看卷组用 vgs:
[root@module ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- 99.00g 4.00m vgjenkins 2 0 0 wz--n- 299.99g 299.99g
从 vgs 命令的回显结果来看,卷组 vgjenkins 成功添加,并且其总空间为两块物理磁盘的总大小(因换算单位不同,所以不是精确的 321G)。
6.创建逻辑卷(lvcreate)
创建逻辑卷的命令为 lvcreate。用此命令将在使用 vgcreate 建立的卷组上创建逻辑卷。
在卷组 vgjenkins 上创建一个名为 lvjenkins 的逻辑卷,指定大小为 299.9GB。
-n:指定逻辑卷名
-L:指定逻辑卷大小
[root@module ~]# lvcreate -L 299.9G -n lvjenkins vgjenkins Rounding up size to full physical extent 299.90 GiB Logical volume "lvjenkins" created.
7.格式化逻辑卷
将创建的 lvjenkins 逻辑卷格式化为 ext4。
[root@module ~]# mkfs -t ext4 /dev/vgjenkins/lvjenkins meta-data=/dev/vgmysql/lvmysql isize=512 agcount=33, agsize=268435328 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0 data = bsize=4096 blocks=8777839616, imaxpct=5 = sunit=64 swidth=64 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=521728, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
Allocating group tables: completed
writing into inode table: completed
Creating journal (32768 blocks):
Writing superblocks and filesystem accounting information: completed
8.创建挂载目录并挂载
- 创建挂载目录 /build
[root@module ~]# mkdir /build
- 挂载
[root@module ~]# mount /dev/vgjenkins/lvjenkins /build
- 配置开机自动挂载
[root@module ~]# echo "/dev/mapper/vgjenkins-lvjenkins /build exts defaults 0 0" > /etc/fstab
9.查看是否挂载成功
[root@module ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 95G 69G 27G 73% /
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 28M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda1 497M 139M 359M 28% /boot
tmpfs 3.2G 0 3.2G 0% /run/user/0
/dev/mapper/vgjenkins-lvjenkins 296G 65M 280G 1% /build
[root@module ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 95G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part
└─vgjenkins-lvjenkins 253:2 0 299.9G 0 lvm /build
sdc 8:32 0 200G 0 disk
└─sdc1 8:33 0 200G 0 part
└─vgjenkins-lvjenkins 253:2 0 299.9G 0 lvm /build
sr0 11:0 1 1024M 0 rom
[root@module ~]# blkid /dev/mapper/centos-root: UUID="5d61ba55-da1a-460f-9daa-15e688028cab" TYPE="xfs"
/dev/sda2: UUID="u7S9BE-caB0-nMv5-cOF4-XGq3-jUhx-ow2HLE" TYPE="LVM2_member"
/dev/sdb1: UUID="2uUdMb-cIVt-J6RP-RFg0-Dp3D-Fv7n-59l9XP" TYPE="LVM2_member" PARTLABEL="primary" PARTUUID="2d4ebcab-699c-4968-9c42-69a59e807ca2"
/dev/sdc1: UUID="eJFNyf-JhLS-Azmt-KhGI-WAP0-ye5P-OUa1bm" TYPE="LVM2_member" PARTLABEL="primary" PARTUUID="6b90fb0d-b2e3-4f68-b671-c0d77066a7a3"
/dev/sda1: UUID="f44eb38b-64c3-4072-9aee-0e86da141fa2" TYPE="xfs"
/dev/mapper/centos-swap: UUID="103f2b9c-61e6-4bb8-9f36-61bc0fc33c9e" TYPE="swap"
/dev/mapper/vgjenkins-lvjenkins: UUID="d61c8c20-1ab2-4647-a9ae-022dbf8a93ea" TYPE="ext4"
[root@MYSQL-SERVER ~]# tail -1 /etc/fstab /dev/mapper/vgjenkins-lvjenkins /build ext4 defaults 0 0