Linux系統(tǒng)使用LVM掛載硬盤(pán)全過(guò)程
1. 背景
在服務(wù)器運(yùn)維中,經(jīng)常需要掛載或者擴(kuò)展存儲(chǔ)空間。
LVM(Logical Volume Manager)是Linux下強(qiáng)大的磁盤(pán)管理工具,支持動(dòng)態(tài)調(diào)整分區(qū)大小、快照、RAID等功能。
本文將詳細(xì)介紹如何在CentOS Linux 7.6上添加一塊新的500GB硬盤(pán),并進(jìn)行LVM配置為以后擴(kuò)容做準(zhǔn)備。
2. 準(zhǔn)備工作
- 操作系統(tǒng):CentOS Linux 7.6
- 新硬盤(pán):500GB
- 分區(qū)表類型:GPT(支持大于2TB的磁盤(pán),并具有更好的兼容性)
- 目標(biāo):將新硬盤(pán)初始化為L(zhǎng)VM,并掛載到
/data目錄
3. 操作過(guò)程
3.1. 確認(rèn)硬盤(pán)
首先,用lsblk命令檢查系統(tǒng)是否識(shí)別了新磁盤(pán):
[hljkjc@hljkjc ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 200G 0 disk ├─vda1 253:1 0 4G 0 part [SWAP] └─vda2 253:2 0 196G 0 part / vdb 253:16 0 500G 0 disk
切換到root賬號(hào)操作,或者用fdisk -l命令查看:
[hljkjc@hljkjc ~]$ fdisk -l Disk /dev/vda: 214.7 GB, 214748364800 bytes, 419430400 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: 0x000bcc64 Device Boot Start End Blocks Id System /dev/vda1 2048 8390655 4194304 82 Linux swap / Solaris /dev/vda2 * 8390656 419430366 205519855+ 83 Linux Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 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
可以看到系統(tǒng)新添加的物理硬盤(pán)為/dev/vdb,容量為536.9GiB。
3.2. 創(chuàng)建新分區(qū)
使用 fdisk 或 parted 創(chuàng)建 LVM 分區(qū)(以 fdisk 為例):
fdisk /dev/vdb
在交互界面中按順序輸入:
- 1)
n→ 新建分區(qū); - 2)
p→ 創(chuàng)建主分區(qū); - 3)
1→ 分區(qū)號(hào)(默認(rèn)1); - 4) 起始扇區(qū)(直接回車,默認(rèn));
- 5)結(jié)束扇區(qū)(直接回車,使用全部空間);
- 6)
t→ 修改分區(qū)類型 ; - 7)
8e→ 設(shè)置為 LVM 類型(Linux LVM); - 8)
w→ 保存并退出
[root@hljkjc hljkjc]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xa7b107d2.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-1048575999, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575999, default 1048575999):
Using default value 1048575999
Partition 1 of type Linux and of size 500 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@hljkjc hljkjc]#
完成驗(yàn)證區(qū)
[root@hljkjc hljkjc]# fdisk -l /dev/vdb Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 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: 0xa7b107d2 Device Boot Start End Blocks Id System /dev/vdb1 2048 1048575999 524286976 8e Linux LVM
3.3. 創(chuàng)建物理卷(PV)
將 /dev/vdb 初始化為L(zhǎng)VM物理卷:
[root@hljkjc hljkjc]#pvcreate /dev/vdb1 bash: pvcreate: command not found # 安裝lvm2 [root@hljkjc hljkjc]#yum install lvm2 # 安裝成功后重新執(zhí)行 `pvcreate /dev/vdb1` [root@hljkjc hljkjc]# pvcreate /dev/vdb1 Physical volume "/dev/vdb1" successfully created. [root@hljkjc hljkjc]#
查看PV:
[root@hljkjc hljkjc]# pvcreate /dev/vdb1 Physical volume "/dev/vdb1" successfully created. [root@hljkjc hljkjc]# pvdisplay "/dev/vdb1" is a new physical volume of "<500.00 GiB" --- NEW Physical volume --- PV Name /dev/vdb1 VG Name PV Size <500.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 9y6duM-vEfU-QjqW-ClfA-CPG1-xm9T-XqZHQC
3.4. 創(chuàng)建卷組(VG)
將物理卷加入卷組,卷組名為 data_vg:
[root@hljkjc hljkjc]# vgcreate data_vg /dev/vdb1 Volume group "data_vg" successfully created [root@hljkjc hljkjc]#
查看VG:
[root@hljkjc hljkjc]# vgdisplay --- Volume group --- VG Name data_vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size <500.00 GiB PE Size 4.00 MiB Total PE 127999 Alloc PE / Size 0 / 0 Free PE / Size 127999 / <500.00 GiB VG UUID gMQOlE-G48X-DV0k-fFRs-picr-n3JR-UrFbel [root@hljkjc hljkjc]#
3.5. 創(chuàng)建邏輯卷(LV)
在卷組中創(chuàng)建邏輯卷,這里命名為 data_lv,大小 100%VG:
[root@hljkjc hljkjc]# lvcreate -l 100%FREE -n data_lv data_vg Logical volume "data_lv" created. [root@hljkjc hljkjc]#
查看LV:
[root@hljkjc hljkjc]# lvdisplay --- Logical volume --- LV Path /dev/data_vg/data_lv LV Name data_lv VG Name data_vg LV UUID De7jjl-UoF3-LfsC-XS6f-AOJ9-wy3D-S446k1 LV Write Access read/write LV Creation host, time hljkjc, 2025-09-12 14:29:03 +0800 LV Status available # open 0 LV Size <500.00 GiB Current LE 127999 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:0 [root@hljkjc hljkjc]#
3.6. 格式化并掛載
3.6.1. 格式化
使用 ext4 或 xfs 格式化LV,這里采用 xfs 進(jìn)行格式化操作:
[root@hljkjc hljkjc]# mkfs.xfs /dev/data_vg/data_lv
meta-data=/dev/data_vg/data_lv isize=512 agcount=4, agsize=32767744 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=131070976, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=63999, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@hljkjc hljkjc]#
3.6.2. 創(chuàng)建掛載點(diǎn)并掛載
[root@hljkjc hljkjc]# mkdir /data [root@hljkjc hljkjc]# mount /dev/data_vg/data_lv /data [root@hljkjc hljkjc]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 16G 0 16G 0% /dev tmpfs tmpfs 16G 0 16G 0% /dev/shm tmpfs tmpfs 16G 8.8M 16G 1% /run tmpfs tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/vda2 ext4 193G 3.0G 182G 2% / tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/0 tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/1000 /dev/mapper/data_vg-data_lv xfs 500G 33M 500G 1% /data [root@hljkjc hljkjc]#

3.6.3. 開(kāi)機(jī)自動(dòng)掛載
備份/etc/fstab文件
cp /etc/fstab{,.bak}
編輯 /etc/fstab:
[root@hljkjc hljkjc]# echo "/dev/data_vg/data_lv /data xfs defaults 0 0" >> /etc/fstab [root@hljkjc hljkjc]#
重啟服務(wù)器后驗(yàn)證:
[root@hljkjc hljkjc]# mount -a [root@hljkjc hljkjc]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm tmpfs 16G 8.7M 16G 1% /run tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/vda2 193G 3.0G 182G 2% / /dev/mapper/data_vg-data_lv 500G 33M 500G 1% /data tmpfs 3.2G 0 3.2G 0% /run/user/1000 [root@hljkjc hljkjc]# df -h /data Filesystem Size Used Avail Use% Mounted on /dev/mapper/data_vg-data_lv 500G 33M 500G 1% /data [root@hljkjc hljkjc]#
關(guān)鍵命令總結(jié)
| 名稱 | 命令示例 |
|---|---|
| 確認(rèn)磁盤(pán) | lsblk或 fdisk -l |
| 創(chuàng)建分區(qū) | fdisk /dev/sda→ 設(shè)置類型 8e |
| 創(chuàng)建物理卷 | pvcreate /dev/vdb1 |
| 創(chuàng)建卷組 | vgcreate data_vg /dev/vdb1 |
| 創(chuàng)建邏輯卷 | lvcreate -l 100%FREE -n data_lv data_vg |
| 格式化 | mkfs.xfs /dev/data_vg/data_lv |
| 掛載 | mount /dev/data_vg/data_lv /data |
| 開(kāi)機(jī)掛載 | echo “…” >> /etc/fstab |
注意事項(xiàng)
1)如果磁盤(pán)已存在數(shù)據(jù),操作前請(qǐng)備份。
2)如需調(diào)整分區(qū)大?。ㄈ绶峙洳糠挚臻g),可在 fdisk 中指定結(jié)束扇區(qū)。
3)LVM 允許動(dòng)態(tài)擴(kuò)展,未來(lái)可通過(guò) lvextend 和 resize2fs 調(diào)整容量。
完成上述步驟后,500GB 磁盤(pán)將作為 LVM 邏輯卷掛載到 /data 并可供使用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux(CentOS)??同步服務(wù)器chrony的安裝配置和常用命令
Chrony是一款開(kāi)源的網(wǎng)絡(luò)時(shí)間協(xié)議(NTP)客戶端和服務(wù)端軟件,旨在提供高精度的時(shí)間同步功能,相較于傳統(tǒng)的NTP實(shí)現(xiàn)如ntpd,Chrony提供了一些改進(jìn)和優(yōu)勢(shì),包括更快的同步速度、低延遲、低CPU占用和低內(nèi)存消耗,本文介紹Linux(CentOS)??同步服務(wù)器chrony的安裝配置和常用命令2024-06-06
使用Apache commons-cli包進(jìn)行命令行參數(shù)解析的示例代碼
Apache的commons-cli包是專門(mén)用于解析命令行參數(shù)格式的包。這篇文章給大家介紹使用Apache commons-cli包進(jìn)行命令行參數(shù)解析的示例代碼,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
Linux系統(tǒng)下操作Apache最基本的啟動(dòng)停止和重啟命令
這篇文章主要介紹了Linux系統(tǒng)下操作Apache最基本的啟動(dòng)停止和重啟命令,是網(wǎng)站搭建入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-07-07
LVS+Keepalived構(gòu)建高可用負(fù)載均衡配置方法(配置篇)
這篇文章主要介紹了LVS+Keepalived構(gòu)建高可用負(fù)載均衡配置方法,需要的朋友可以參考下2013-06-06
Linux之進(jìn)程狀態(tài)&&進(jìn)程優(yōu)先級(jí)詳解
文章介紹了操作系統(tǒng)中進(jìn)程的狀態(tài),包括運(yùn)行狀態(tài)、阻塞狀態(tài)和掛起狀態(tài),并詳細(xì)解釋了Linux下進(jìn)程的具體狀態(tài)及其管理,此外,文章還討論了進(jìn)程的優(yōu)先級(jí)、查看和修改進(jìn)程優(yōu)先級(jí)的方法,以及并發(fā)相關(guān)的概念和函數(shù)的返回值2025-02-02
Linux實(shí)現(xiàn)用腳本添加crontab定時(shí)任務(wù)
這篇文章主要介紹了Linux實(shí)現(xiàn)用腳本添加crontab定時(shí)任務(wù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06

