站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

邁向 RHCE 之路 (Day20) - 邏輯磁碟管理員 LVM

前言

邏輯磁碟管理員 LVM (Logical Volume Manager),簡單來說便是把一堆硬碟結合成為一顆大硬碟讓空間使用更具彈性,整個 LVM 組成的架構圖請參考 [RedHat - LVM Administrator Guide]

LVM 實作 (PV、VG、LV)

本次實作為將二顆 2 GB 的硬碟 (PV) 結合成為一顆 4 GB 的大硬碟 (VG) 在這大硬碟中切割出二顆 1 GB 的硬碟 (LV),相關資訊如下:

請先以「fdisk」指令對 /dev/sdb、/dev/sdc 硬碟進行分割區及格式設定,格式請設定為 「8e(Linux LVM)」

 #fdisk /dev/sdb
  n > p > 1 > enter > enter > t > 8e > w
 #fdisk /dev/sdc
  n > p > 1 > enter > enter > t > 8e > w
 #cat /proc/partitions | grep -E "sdb|sdc"
    8       16    2097152 sdb
    8       17    2095662 sdb1
    8       32    2097152 sdc
    8       33    2095662 sdc1

確定系統可偵測到 /dev/sdb1、/dev/sdc1 分割區後即著手建立 PV、VG、LV 資訊,建立完成後可使用 「pvs、vgs、lvs」 查看相對應簡單資訊,或者使用 「pvdisplay、vgdisplay、lvdisplay」 查看詳細資訊。

 #pvcreate /dev/sd{b,c}1          //建立 PV
   Physical volume "/dev/sdb1" successfully created
   Physical volume "/dev/sdc1" successfully created
 #vgcreate myvg /dev/sd{b,c}1     //建立 VG
   Volume group "myvg" successfully created
 #lvcreate -L 1G -n mylv1 myvg    //建立 LV
   Logical volume "mylv1" created
 #lvcreate -L 1G -n mylv2 myvg    //建立 LV
   Logical volume "mylv2" created
 #pvs                             //查看 PV 資訊       
   PV         VG    Fmt  Attr PSize PFree
   /dev/sdb1        lvm2 a-   2.00g 2.00g
   /dev/sdc1        lvm2 a-   2.00g 2.00g
 #vgs                             //查看 VG 資訊
   VG         #PV #LV #SN Attr   VSize VFree
   myvg         2   0   0 wz--n- 3.99g 3.99g
 #lvs                             //查看 LV 資訊
   LV     VG    Attr   LSize Origin Snap%  Move Log Copy%  Convert
   mylv1  myvg  -wi-a- 1.00g
   mylv2  myvg  -wi-a- 1.00g

接著將建立好的二個 LV 格式化後進行建資料夾及掛載的動作:

 #mkfs.ext4 /dev/myvg/mylv1         //格式化 LV
 #mkfs.ext4 /dev/myvg/mylv2
 #mkdir /mnt/mylv{1,2}              //建立掛載資料夾
 #mount /dev/myvg/mylv1 /mnt/mylv1  //掛載 LV
 #mount /dev/myvg/mylv2 /mnt/mylv2
 #df -h                             //查看檔案系統掛載資訊
  Filesystem             Size  Used Avail Use% Mounted on
  /dev/mapper/vg_centos6-lv_root
                          7.5G  2.1G  5.0G  30% /
  tmpfs                   504M   88K  504M   1% /dev/shm
  /dev/sda1               485M   29M  431M   7% /boot
  /dev/mapper/myvg-mylv1 1008M   34M  924M   4% /mnt/mylv1
  /dev/mapper/myvg-mylv2 1008M   34M  924M   4% /mnt/mylv2

將 LV (mylv1) 由 1 GB 空間擴大為 1.5 GB

一般來說將 LV 空間擴大比較簡單也才是合理的狀況,當然前提是 VG 還有空間可以撥給 LV 使用,因此只要使用「lvextend、resize2fs」即可達成將 LV 空間線上擴充的目的。

 #lvextend -L +512M /dev/myvg/mylv1
   Extending logical volume mylv1 to 1.50 GiB
   Logical volume mylv1 successfully resized
 #resize2fs -p /dev/myvg/mylv1
  resize2fs 1.41.12 (17-May-2010)
  Filesystem at /dev/myvg/mylv1 is mounted on /mnt/mylv1; on-line resizing required
  old desc_blocks = 1, new_desc_blocks = 1
  Performing an on-line resize of /dev/myvg/mylv1 to 393216 (4k) blocks.
  The filesystem on /dev/myvg/mylv1 is now 393216 blocks long.
 #df -h
  Filesystem             Size  Used Avail Use% Mounted on
  /dev/mapper/vg_centos6-lv_root
                          7.5G  2.1G  5.0G  30% /
  tmpfs                   504M   88K  504M   1% /dev/shm
  /dev/sda1               485M   29M  431M   7% /boot
  /dev/mapper/myvg-mylv1  1.5G   34M  1.4G   3% /mnt/mylv1
  /dev/mapper/myvg-mylv2 1008M   34M  924M   4% /mnt/mylv2

將 LV (mylv2) 由 1 GB 空間縮小為 512 MB

一般來說將 LV 空間縮小比較複雜並且比較不合理 (資料可能會有遺失的風險!!),而縮小 LV 的空間會還給 VG,必須先把 LV 離線 (umount) 之後透過「resize2fs、lvreduce、mount」才可達成將 LV 空間縮小的目的。

 #umount /mnt/mylv2
 #e2fsck -f /dev/myvg/mylv2
  e2fsck 1.41.12 (17-May-2010)
  Pass 1: Checking inodes, blocks, and sizes
  Pass 2: Checking directory structure
  Pass 3: Checking directory connectivity
  Pass 4: Checking reference counts
  Pass 5: Checking group summary information
  /dev/myvg/mylv2: 11/65536 files (0.0% non-contiguous), 12635/262144 blocks
 #resize2fs /dev/myvg/mylv2 512M
  resize2fs 1.41.12 (17-May-2010)
  Resizing the filesystem on /dev/myvg/mylv2 to 131072 (4k) blocks.
  The filesystem on /dev/myvg/mylv2 is now 131072 blocks long.
 #lvreduce -L 512M /dev/myvg/mylv2
   WARNING: Reducing active logical volume to 512.00 MiB
   THIS MAY DESTROY YOUR DATA (filesystem etc.)
   Do you really want to reduce mylv2? [y/n]: y
   Reducing logical volume mylv2 to 512.00 MiB
   Logical volume mylv2 successfully resized
 #mount /dev/myvg/mylv2 /mnt/mylv2
 #df -h
  Filesystem             Size  Used Avail Use% Mounted on
  /dev/mapper/vg_centos6-lv_root
                          7.5G  2.1G  5.0G  30% /
  tmpfs                   504M   88K  504M   1% /dev/shm
  /dev/sda1               485M   29M  431M   7% /boot
  /dev/mapper/myvg-mylv1  1.5G   34M  1.4G   3% /mnt/mylv1
  /dev/mapper/myvg-mylv2  504M   33M  446M   7% /mnt/mylv2

以上都是使用指令進行操作,若是在圖形介面環境中您可以使用指令 「system-config-lvm」 呼叫出 Logical Volume Management 管理介面進行 LVM (PV、VG、LV) 的管理。

Logical Volume Management 管理介面

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com