Linux LVM

wongchaofan發表於2024-06-10

新增新磁碟

查詢新增磁碟檔案 /dev/sdb

列出系統當前的塊裝置

$ lsblk
NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                    8:0    0  500G  0 disk
├─sda1                 8:1    0    1M  0 part
├─sda2                 8:2    0    1G  0 part /boot
├─sda3                 8:3    0   99G  0 part
│ ├─vg00-rootvol     253:0    0  210G  0 lvm  /
│ ├─vg00-swapvol     253:1    0    2G  0 lvm  [SWAP]
│ ├─vg00-homevol     253:2    0 50.3G  0 lvm  /home
│ ├─vg00-tmpvol      253:3    0 20.5G  0 lvm  /tmp
│ ├─vg00-auditvol    253:4    0  256M  0 lvm  /var/log/audit
│ ├─vg00-crashvol    253:5    0  1.9G  0 lvm  /var/crash
│ ├─vg00-varvol      253:6    0  102G  0 lvm  /var
│ └─vg00-roothomevol 253:7    0   55G  0 lvm
└─sda4                 8:4    0  400G  0 part
  ├─vg00-rootvol     253:0    0  210G  0 lvm  /
  ├─vg00-homevol     253:2    0 50.3G  0 lvm  /home
  ├─vg00-tmpvol      253:3    0 20.5G  0 lvm  /tmp
  ├─vg00-varvol      253:6    0  102G  0 lvm  /var
  └─vg00-roothomevol 253:7    0   55G  0 lvm
sdb                    8:16   0  300G  0 disk
sr0                   11:0    1 1024M  0 rom

或者使用 fdisk -l 命令

sudo fdisk -l

對新磁碟 /dev/sdb 進行分割槽

使用 fdisk /dev/sdb 命令進入互動模式

$ sudo fdisk /dev/sdb
Command (m for help):
  1. 鍵入 n 建立新分割槽

  2. 鍵入 p 選擇分割槽型別為主分割槽

  3. 鍵入 1 選擇第一個主分割槽

  4. 最後選擇起始扇區和結束扇區
    起始扇區選擇預設值,直接回車
    結束扇區可以使用 +size{K,M,G,T,P} 格式,比如 +10G 會分配 10GB 空間到第一個主分割槽。如果將整個磁碟空間分配給第一個主分割槽,則直接敲回車。

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039):

Created a new partition 1 of type 'Linux' and of size 20 GiB.
  1. 鍵入 t 選擇分割槽型別

  2. 鍵入 1 選擇第一個分割槽

  3. 鍵入 8e 修改分割槽型別為 Linux LVM

Command (m for help): t
Selected partition 1
Partition type (type L to list all types): 8e
Changed type of partition 'Linux' to 'Linux LVM'.

鍵入 p 命令列印當前磁碟裝置的分割槽表

命令(輸入 m 獲取幫助):p

磁碟 /dev/sdb:322.1 GB, 322122547200 位元組,629145600 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0xf143983b

裝置        Boot  Start           End       Blocks   Id  System
/dev/sdb1   *     2048      629145599   314571776   8e  Linux LVM

最後鍵入 w 儲存並退出,或者鍵入 q 不儲存退出。

使用 LVM 管理新磁碟

物理卷操作 (Physical Volume)

檢視物理卷

sudo pvs
sudo pvdisplay

將分割槽 /dev/sdb1 初始化為物理卷

sudo pvcreate /dev/sdb1

刪除物理卷

sudo pvremove -y /dev/sdb1

卷組操作 (Volume Group)

檢視卷組

sudo vgs
sudo vgdisplay

建立卷組 vg00 並使用物理卷 /dev/sda1/dev/sda2

sudo vgcreate vg00 /dev/sda1 /dev/sda2

新增物理卷 /dev/sdb1 到卷組 vg00

sudo vgextend vg00 /dev/sdb1

從卷組 vg00 刪除物理卷 /dev/sdb1

sudo vgreduce vg00 /dev/sdb1

重新命名卷組 vgvg00

sudo vgrename vg vg00
sudo vgrename /dev/vg /dev/vg00

刪除卷組 vg00

sudo vgremove vg00

邏輯卷操作 (Logical Volume)

檢視邏輯卷

sudo lvs
sudo lvdisplay

建立邏輯卷,大小 100G,名稱為 datavol,使用卷組 vg00

sudo lvcreate -L 100G -n datavol vg00

建立邏輯卷,大小為卷組所有可用空間,名稱為 datavol,使用卷組 vg00

sudo lvcreate -l 100%FREE -n datavol vg00

擴充套件邏輯卷大小,新增 50G 空間

sudo lvextend -L +50G vg00/datavol
# 或
sudo lvextend -L +50G /dev/vg00/datavol

擴充套件邏輯卷大小,將所在卷組的剩餘空間全部新增到邏輯卷

sudo lvextend -l +100%FREE /dev/vg00/datavol

減少邏輯卷大小,減少 10G 空間。注意:XFS 檔案系統不支援空間縮減,在 XFS 檔案系統上使此命令會導致邏輯卷損毀。

sudo lvreduce -L -10G vg00/datavol

重新命名卷組 vg00 上的邏輯卷 datadatavol

sudo lvrename vg00 data datavol

刪除卷組 vg00 上的邏輯卷 datavol

sudo lvremove vg00/datavol

# Remove all logical volumes in volume group vg00
sudo lvremove vg00

建立邏輯卷後,需要格式化邏輯卷,建立檔案系統

# xfs file system
sudo mkfs.xfs /dev/vg00/datavol

# ext4 file system
sudo mkfs.ext4 /dev/vg00/datavol

增加或減少邏輯卷大小後,需要調整檔案系統大小

使用 mount 命令檢視掛載的檔案系統

mount -l

mount -l -t ext4

mount -l -t xfs

注意:此命令用於 EXT3/4 檔案系統,但不適用於 XFS 檔案系統.

sudo resize2fs /dev/vg00/datavol

增加 XFS 檔案系統的邏輯卷大小後,可以使用以下命令調整檔案系統

sudo xfs_growfs /dev/vg00/datavol

將邏輯卷 datavol 掛載到 /data

sudo mkdir -p /data
sudo mount /dev/vg00/datavol /data

寫入 /etc/fstab 檔案,確保開機自動掛載

# 使用 vi 編輯
$ sudo vi /etc/fstab
/dev/vg00/datavol /data xfs defaults 0 0
# or
/dev/mapper/vg00-datavol /data xfs defaults 0 0

# 使用 echo 新增
$ sudo echo '/dev/vg00/datavol /data xfs defaults 0 0' >> /etc/fstab

檢視主機檔案系統資訊

$ df -h /data
Filesystem                   Size  Used  Avail  Use%  Mounted on
/dev/mapper/vg00-datavol     120G   34M  120G   1%    /data

檢視檔案系統是 XFS 的掛載點

mount -t xfs

相關文章