一、需求場景
將主機的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