【ECS最佳實踐】基於多塊雲盤構建LVM邏輯卷

1、LVM簡介

LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是創建在硬盤和分區之上的一個邏輯層,來提升磁盤分區管理的靈活性。node

LVM最大的特色就是能夠對磁盤進行動態管理。由於邏輯卷的大小是能夠動態調整的,並且不會丟失現有的數據。若是咱們新增長了硬盤,其也不會改變現有上層的邏輯卷。做爲一個動態磁盤管理機制,邏輯卷技術大大提升了磁盤管理的靈活性。若是指望擴容雲盤的IO能力,則能夠經過將多塊容量相同的雲盤作RAID0。服務器

圖1:LVM邏輯示意圖(圖片來自於互聯網)

2、建立LVM卷

2.1步驟一 建立物理卷PVapp

以下以5塊雲盤經過LVM建立彈性可擴展邏輯卷爲例。ui

root@lvs06:~# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    252:0    0  40G  0 disk
└─vda1 252:1    0  40G  0 part /
vdb    252:16   0   1T  0 disk
vdc    252:32   0   1T  0 disk
vdd    252:48   0   1T  0 disk
vde    252:64   0   1T  0 disk
vdf    252:80   0   1T  0 disk
  • step1: 以root帳號登陸雲服務器
  • step2:執行如下命令,爲雲盤建立PV卷
pvcreate <磁盤路徑1> ... <磁盤路徑N>

說明:此處須要填寫雲盤的設備名稱,若是須要添加多個雲盤,則能夠添加多雲盤設備名稱,中間以空格間隔。以下以/dev/vdb, /dev/vdc,/dev/vdd,/dev/vde,/dev/vdf爲例,執行結果以下:spa

root@lvs06:~# pvcreate  /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf
  Physical volume "/dev/vdb" successfully created.
  Physical volume "/dev/vdc" successfully created.
  Physical volume "/dev/vdd" successfully created.
  Physical volume "/dev/vde" successfully created.
  Physical volume "/dev/vdf" successfully created.
  • step3:執行如下命令,查看該服務器上物理卷(PV)信息:
lvmdiskscan | grep LVM

執行結果以下:code

root@lvs06:~# lvmdiskscan | grep LVM
  /dev/vdb  [       1.00 TiB] LVM physical volume
  /dev/vdc  [       1.00 TiB] LVM physical volume
  /dev/vdd  [       1.00 TiB] LVM physical volume
  /dev/vde  [       1.00 TiB] LVM physical volume
  /dev/vdf  [       1.00 TiB] LVM physical volume
  5 LVM physical volume whole disks
  0 LVM physical volumes

2.2步驟二 建立卷組(VG)orm

  • step1:執行如下命令,建立卷組(VG)
vgcreate <卷組名> <物理卷路徑1>……<物理卷路徑N>

執行結果以下:圖片

root@lvs06:~# vgcreate lvm_01  /dev/vdb  /dev/vdc /dev/vdd /dev/vde /dev/vdf
  Volume group "lvm_01" successfully created

說明get

1.卷組名:該參數可自定義

2.物理卷路徑:此處填寫雲盤的物理卷名稱,多個物理卷直接以空格間隔

3.當提示 「Volume group XXX successfully created」標識卷組建立成功;
  • step2:執行如下命令,能夠向卷組(VG)中添加物理卷(PV)
vgextend 卷組名稱  <物理卷路徑1>……<物理卷路徑N>

以下,向卷組(VG)lvm_01中添加一塊新的物理卷:it

root@lvs06:~# pvcreate /dev/vdg
  Physical volume "/dev/vdg" successfully created.
root@lvs06:~# vgextend  lvm_01  /dev/vdg
  Volume group "lvm_01" successfully extended
  • step3:建立卷組(VG)成功後,可經過vgs,vgdisplay命令查看卷組信息
root@lvs06:~# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  lvm_01   6   0   0 wz--n- <6.00t <6.00t

2.3步驟三 建立邏輯卷(LV)

  • step1:執行如下命令建立邏輯卷(LV)
lvcreate [-L <邏輯卷大小>][ -n <邏輯卷名稱>] <卷組名稱>

參數說明

1.邏輯卷大小:邏輯卷的大小應小於卷組(VG)剩餘可用空間,單位能夠選擇MB、GB或者TB
2.邏輯卷名稱:可自定義
3.卷組名稱:此處填寫邏輯卷所在的卷組名稱

本文以建立1個4TB的邏輯卷(LV)爲例,執行結果以下:

root@lvs06:~# lvcreate -L 5T -n lv01 lvm_01
  Logical volume "lv01" created.
  • step2:執行lvdisplay命令查看,邏輯卷詳細信息:
root@lvs06:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/lvm_01/lv01
  LV Name                lv01
  VG Name                lvm_01
  LV UUID                svB00x-l6Ke-ES6M-ctsE-9P6d-dVj2-o0h3Kz
  LV Write Access        read/write
  LV Creation host, time lvs06, 2019-06-06 15:27:19 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 TiB
  Current LE             1310720
  Segments               6
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

2.4步驟四 建立並掛載文件系統

  • step1:執行如下命令,在建立好的邏輯卷(LV)上建立文件系統
mkfs.文件系統格式  邏輯卷路徑

針對上一步中的邏輯卷建立ext4文件系統,執行結果以下:

root@lvs06:~# mkfs.ext4  /dev/lvm_01/lv01
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 1342177280 4k blocks and 167772160 inodes
Filesystem UUID: 2529002f-9209-4b6a-9501-106c1145c77f
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information:
done
  • step2:執行如下命令掛載文件系統:
mount  邏輯卷路徑   掛載點

執行結果以下:

root@lvs06:~# mount  /dev/lvm_01/lv01  /media/lv01
root@lvs06:~# df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                      12G     0   12G   0% /dev
tmpfs                    2.4G  3.7M  2.4G   1% /run
/dev/vda1                 40G  3.6G   34G  10% /
tmpfs                     12G     0   12G   0% /dev/shm
tmpfs                    5.0M     0  5.0M   0% /run/lock
tmpfs                     12G     0   12G   0% /sys/fs/cgroup
tmpfs                    2.4G     0  2.4G   0% /run/user/0
/dev/mapper/lvm_01-lv01  5.0T   89M  4.8T   1% /media/lv01

3、進階場景

3.1擴展邏輯卷以及系統容量

  • Step1:執行如下命令,可擴展邏輯卷的容量
lvextend [-L +/- <增減容量>] <邏輯卷路徑>

參數說明

1.增減容量:當卷組中可剩餘容量時 ,能夠執行擴容邏輯卷操做。擴容邏輯卷以後還須要擴容對應的文件系統才能生效;
2.邏輯卷路徑:此處填寫帶擴容的邏輯卷路徑

以下針對/dev/lvm_01/lv01 卷再擴容500GB物理空間,執行結果以下:

root@lvs06:~# lvextend -L +500GB /dev/lvm_01/lv01
Size of logical volume lvm_01/lv01 changed from 5.00 TiB (1310720 extents) to <5.49 TiB (1438720 extents).
Logical volume lvm_01/lv01 successfully resized.
  • step2:執行pvs命令,查看物理卷(pv)使用狀況:
root@lvs06:~# pvs
  PV         VG     Fmt  Attr PSize     PFree
  /dev/vdb   lvm_01 lvm2 a--  <1024.00g       0
  /dev/vdc   lvm_01 lvm2 a--  <1024.00g       0
  /dev/vdd   lvm_01 lvm2 a--  <1024.00g       0
  /dev/vde   lvm_01 lvm2 a--  <1024.00g       0
  /dev/vdf   lvm_01 lvm2 a--  <1024.00g       0
  /dev/vdg   lvm_01 lvm2 a--  <1024.00g <523.98g
  • step3:執行如下resize2fs命令擴容文件系統:
resize2fs  邏輯卷路徑

執行結果以下:

root@lvs06:~# resize2fs  /dev/lvm_01/lv01
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/lvm_01/lv01 is mounted on /media/lv01; on-line resizing required
old_desc_blocks = 640, new_desc_blocks = 703
The filesystem on /dev/lvm_01/lv01 is now 1473249280 (4k) blocks long.
  • step4:執行df-h名稱,查看文件系統擴容狀況
root@lvs06:~# df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                      12G     0   12G   0% /dev
tmpfs                    2.4G  3.7M  2.4G   1% /run
/dev/vda1                 40G  3.6G   34G  10% /
tmpfs                     12G     0   12G   0% /dev/shm
tmpfs                    5.0M     0  5.0M   0% /run/lock
tmpfs                     12G     0   12G   0% /sys/fs/cgroup
tmpfs                    2.4G     0  2.4G   0% /run/user/0
/dev/mapper/lvm_01-lv01  5.5T   83M  5.2T   1% /media/lv01



本文做者:小盆友開飛機

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索