天天看點

lvm的建立,擴容,回縮

lvm的建立,擴容,回縮

lvm邏輯盤卷管理(LogicalVolumeManager)

lvm是在linux的環境下對磁盤分區的管理,lvm的好處就在于可以線上擴容,就是在分區正在挂載的時候動态擴容,開始做系統的時候需要為每個分區指定大小,如果分區空間用完,這個分區就無法再往裡面添加檔案,隻能備份分區裡面的檔案,然後重新分區,這樣很麻煩。但是如果是用的是lvm的話,就可以動态添加分區的大小

pv:實體卷

vg:卷組(volume group)

lv:邏輯卷組(logical volumes)

建立的順序是先将分區制作成實體卷,在将若幹個實體卷制作成卷組,在卷組之上建立邏輯卷

                  1、劃出1個分區,我這裡是/dev/sda5大小為1G

# fdisk /dev/sda

Command (m for help): n                            //添加

First cylinder (2886-10443, default 2886):    //直接回車,使用預設柱面

Using default value 2886

Last cylinder or +size or +sizeM or +sizeK (2886-10443, default 10443): +1G //大小1G

Command (m for help): t          //指定分區類型

Partition number (1-6): 5                   //5代表第五個分區,這裡是sda5

Hex code (type L to list codes): 8e //8e代表lvm

Changed system type of partition 5 to 8e (Linux LVM)

Command (m for help): w                  //w儲存退出

The partition table has been altered!

# partprobe /dev/sda 通知核心分區表發生改變

# pvcreate /dev/sda5首先建立pv

# vgcreate vg0 /dev/sda5建立vg,這個vg名字為vg0

#lvcreate -L 500M -n lv0 vg0在vg0中建立邏輯卷,名字為lv0

# lvs使用lvs指令檢視剛剛建立的邏輯卷

LV   VG   Attr   LSize   Origin Snap% Move Log Copy% Convert

lv0 vg0 -wi-a- 500.00M

# mkfs.ext3 /dev/vg0/lv0                            //格式化剛剛建立的邏輯卷

# mkdir /lvm                                                   //建立檔案夾,作為挂載點

# mount /dev/vg0/lv0      /lvm/                //挂載上

# df   -h                                                //檢視挂載

/dev/mapper/vg0-lv0   485M   11M 449M   3% /lvm

建立完成。

現在開始動态擴容lvm

# vgs使用vgs檢視目前卷組是否有空餘空間。

VG   #PV #LV #SN Attr   VSize   VFree

vg0    1   1   0 wz--n- 964.00M          464.00M

我要将lvm增大到1500M ,目前的lvm是500M 還需要1G的空間,vg的剩餘空間沒有這麼多,我隻能在建立一個pv ,然後将新添加的pv劃入vg。我才能增大lvm

#fdisk /dev/sda方法同上。在添加一個1G的分區/dev/sda6

#pvcreate /dev/sda6

#vgextend  vg0 /dev/sda6         将新建立的pv劃入vg0卷組裡

# vgs

VG   #PV #LV #SN Attr   VSize        VFree

vg0    2   1   0 wz--n- 1.88G       1.39G

現在剩餘空間為1.39G

# lvextend -L 1500M         /dev/vg0/lv0  

# lvs

LV   VG   Attr   LSize Origin Snap% Move Log Copy% Convert

lv0 vg0 -wi-ao       1.46G  

使用lvs檢視目前的lvm .我的邏輯卷已經變成了1500M,但是我使用df檢視的時候發現

這裡還是顯示我的lvm是485M,擴容的時候要注意,隻有lvm增大的時候,增大的那部分空間是不能用的,因為沒有檔案系統,是以現在我們要使用resize2fs這個指令來增大lvm的檔案系統

# resize2fs /dev/vg0/lv0

# df -h

/dev/mapper/vg0-lv0   1.5G   11M 1.4G   1% /lvm

這個時候lvm就已經變成了1.5G

說完了增大,我還想将lvm回縮到500M這個就需要用到lvm的回縮功能

注意:減小的時候lvm不能是挂載狀态,否則回縮檔案系統會失敗

減小的方法跟增大的方法類似,但是與增大正好相反,增大時先增大lvm然後拉伸檔案系統,而減小則是先回縮檔案系統,然後在縮小lvm

# umount /dev/vg0/lv0首先解除安裝lvm

# resize2fs /dev/vg0/lv0 500M

resize2fs 1.39 (29-May-2006)

Please run 'e2fsck -f /dev/vg0/lv0' first.

系統提示我們要先運作e2fsck -f /dev/vg0/lv0這個指令,這個指令是強制檢查我們的這個lvm裝置

# e2fsck -f /dev/vg0/lv0

Resizing the filesystem on /dev/vg0/lv0 to 512000 (1k) blocks.

The filesystem on /dev/vg0/lv0 is now 512000 blocks long.

系統提示說/dev/vg0/lv0現在已經500M了

# lvresize -L 500M /dev/vg0/lv0 //減小lvm

WARNING: Reducing active logical volume to 500.00 MB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce lv0? [y/n]: y這裡詢問我們是否要減小lvm

Reducing logical volume lv0 to 500.00 MB

Logical volume lv0 successfully resized這裡提示lvm已經成功減小

# mount /dev/vg0/lv0 /lvm再次挂載lvm

# df -h檢視挂載,變成了500M

/dev/mapper/vg0-lv0   485M   11M 454M   3% /lvm

本文轉自 周新宇1991 51CTO部落格,原文連結:http://blog.51cto.com/zhouxinyu1991/1269440,如需轉載請自行聯系原作者

繼續閱讀