iT邦幫忙

DAY 20
7

邁向 RHCE 之路系列 第 20

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

邏輯磁碟管理員 LVM (Logical Volume Manager),簡單來說便是把一堆硬碟結合成為一顆大硬碟讓空間使用更具彈性,整個 LVM 組成的架構圖請參考下列二張圖表。(圖片來源: RedHat - LVM Administrator Guide)
下圖為 PV (Physical Volume) 示意圖

下圖為 LVM Logical Volume Components (LVM 元件組成示意圖)

本次實作為將二顆 2 GB 的硬碟 (PV) 結合成為一顆 4 GB 的大硬碟 (VG) 在這大硬碟中切割出二顆 1 GB 的硬碟 (LV),相關資訊如下:
PV (Physical Volume): sdb (2 GB)、sdc (2 GB)
VG (Volume Group): myvg (4 GB)
LV (Logic Volume): mylv1 (1 GB)、mylv2 (1 GB)

同樣先以「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) 的管理。

(上一篇)邁向 RHCE 之路 (Day19) - Software RAID
(下一篇)邁向 RHCE 之路 (Day21) - 主機基礎安全防護 TCP Wrappers
邁向 RHCE 之路系列文章連結


上一篇
邁向 RHCE 之路 (Day19) - Software RAID
下一篇
邁向 RHCE 之路 (Day21) - 主機基礎安全防護 TCP Wrappers
系列文
邁向 RHCE 之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言