歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

在Linux的系統中使用動態磁盤

是否遇到過這樣的問題,劃分了 10G 的一個分區,掛接到 /home 下,可是隨著時間的流逝,10G 的空間開始不夠用了,需要把它擴充。假設要擴充到 12G,那麼唯一的方法就是建立一個 12G 的新分區,然後將原來的 10G 分區中的數據全部移動到新分區中,再修改掛接配置。這樣不僅麻煩而且浪費時間。
 
  Linux 2.4 開始支持 LVM(Logical Volume Manager,邏輯卷管理器),通過 LVM,可以動態地改變“分區”(准確地說應當稱之為卷)的大小,而不必擔心數據移動的問題。LVM 的原理是,首先在硬盤上創建 PV(Physical Volume: 物理卷)。PV 可以創建在一個分區上,也可以創建在整個硬盤上,它由許多的 PE(Physical Extent)組成,每個 PE 的默認值為 4MB.之後將數個 PV 合在一起組成一個 VG(Volume Group: 卷組)。最後在 VG 中創建 LV(Logical Volume: 邏輯卷),它也由許多的 LE(Logical Extent)組成,LE 的大小與 PE 相同,並與 PE 一一對應。LV 就可以像普通的分區一樣掛接在任何地方了。
 
  下面我們總結一下這裡出現的詞匯:
 
  LVM (Logical Volume Manager,邏輯卷管理器):Linux 中用於管理邏輯卷的功能。
 
  PV(Physical Volume,物理卷):數據實際保存的位置,由許多 PE 組成。
 
  VG(Volume Group,卷組):多個 PV 組合在一起。
 
  LV(Logical Volume,邏輯卷):LVM 創建的虛擬卷,由許多 LE 組成,可以像普通分區一樣進行掛接,可以動態修改大小。
 
  PE(Physical Extent):LVM 管理的最小單位,默認為 4MB.
 
  LE(Logical Extent):大小與 PE 相同,並與 PE 一一對應。
 
  制作 LVM
 
  下面我們嘗試在 Linux 下使用 LVM 來管理分區。以下操作使用的系統為 Fedora Core 3.
 
  1. 首先用 fdisk 創建兩個分區 /dev/hda7 和 /dev/hda8,選擇分區大小為 1G.結果如下:
 
  
Device Boot Start End Blocks Id System
/dev/hdb1 1 2117 1000251 83 Linux
/dev/hdb2 2118 4234 1000282+ 83 Linux


 
  2. 使用 pvcreate 命令將分區建立為 PV.
 
   # pvcreate /dev/hdb1
Physical volume "/dev/hdb1" successfully created
# pvcreate /dev/hdb2
Physical volume "/dev/hdb2" successfully created

 
  3. 使用 vgcreate 命令將新建的兩個 PV 組合成 VG.
 
   # vgcreate newvg /dev/hdb1 /dev/hdb2
Volume group "newvg" successfully created

 
  之後我們可以發現在 /dev 目錄下多了一個名為 newvg 的目錄,這就是我們建立的 VG.
 
  4. 使用 lvcreate 命令在 newvg 中建立一個 LV,名為 lv01,大小為 256M.
 
   # lvcreate -L 256M -n lv01 newvg
Logical volume "lv01" created

 
  可以發現在 /dev/newvg 下多了一個名為 lv01 的符號鏈接,這就是 LV.
 
  5. 在 lv01 上建立文件系統。
 
  # mke2fs /dev/newvg/lv01
 
  6. 掛接該文件系統。
 
  # mount -t ext2 /dev/newvg/lv01 /root/lv
 
  至此一個 LV 已經建立完畢。我們可以試著增大該 LV 的容量。使用 lvextend 命令將剛剛建立的 LV 增大 128M.擴大容量之後需要使用 resize2fs 命令來擴大原有的文件系統到新的容量。
 
   # lvextend -L+128M /dev/newvg/lv01
Extending logical volume lv01 to 384.00 MB
Logical volume lv01 successfully resized

# umount /dev/newvg/lv01

# e2fsck -f /dev/newvg/lv01
e2fsck 1.36 (05-Feb-2005)
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/newvg/lv01: 12/65536 files (8.3% non-contiguous), 10336/262144 blocks

# resize2fs /dev/newvg/lv01
resize2fs 1.36 (05-Feb-2005)
Resizing the filesystem on /dev/newvg/lv01 to 393216 (1k) blocks.
The filesystem on /dev/newvg/lv01 is now 393216 blocks long.

# mount -t ext2 /dev/newvg/lv01 /root/lv

 

   之後馬上就可以利用 df -h 命令看到文件系統的容量改變了。

我們也可以利用 vgdisplay 命令來查看 VG 的信息。
 

# vgdisplay newvg
--- Volume group ---
VG Name newvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.91 GB
PE Size 4.00 MB
Total PE 488
Alloc PE / Size 96 / 384.00 MB
Free PE / Size 392 / 1.53 GB
VG UUID YAlPwY-Vlfa-ZBa7-4jPQ-60Gk-Fzwi-jUW8BM

 

Copyright © Linux教程網 All Rights Reserved