linux初學者-磁盤拉伸縮減篇


 

linux初學者-磁盤拉伸縮減篇

        在系統的使用過程中,往往會出現這樣的問題,由於剛開始無法估計需要的磁盤空間,導致后期磁盤空間不夠,使得數據沒地方存儲,又或者后期磁盤空間過大,造成資源的浪費。這種在使用之前無法估計磁盤大小的問題可以通過LVM來解決。

         LVM時將一個或多個磁盤的分區在邏輯上集合,相當於一個大硬盤來使用,當磁盤空間不夠時,可以將其他磁盤的分區空間加入其中,這樣可以實現磁盤空間的動態管理。下文將對這種磁盤的拉伸和壓縮空間進行介紹。

         LVM里分為PV、VG、LV。在LV的空間用滿了之后,就需要重新在VG中加入空間,當VG空間用完后,需要從PV中獲取,當PV空間用完之后,就需要重新加入磁盤分區了,這樣就可以實現在LV空間不足時的空間供給。PV、VG、LV的查看可以通過命令"pvs"、"vgs"和"lvs"來實現。

   1、建立

        建立時需要先新建一個分區,並將分區的功能標識設為LVM,即先輸入"t",選定分區后輸入"8e"。

        輸入"pvcreate 磁盤分區"創建一個PV,如下圖所示。然后輸入"vgcreate vg0 磁盤分區"來建立VG,"vg0"為VG的名稱,可以自行設置。最后輸入"lvcreate -L 200M -n lv0 vg0"來分配磁盤空間,其中"200M"為分配的磁盤大小,"lv0"為LV的名稱,可以自行設置。

        完成后會出現一個"/dev/vg0/lv0"磁盤分區,輸入"mkfs.xfs /dev/vg0/lv0 -f"格式化這個分區,然后就可以進行掛載了。

   2、添加空間

        如下圖所示,當分得的200M空間用完后,需要給lv0里面添加空間,則可以輸入命令"lvextend -L 400M /dev/vg0/lv0"來添加400M的空間。但此時空間不會添加進去,需要對新加入的空間進行格式化,但不能使用"mkfs.xfs"來格式化,需要輸入"xfs_growfs /dev/vg0/lv0"來格式化,完成后空間即可添加進去。

        當VG和PV的空間都使用完后,需要重新從新的磁盤分區中添加,如下圖所示,在PV中再添加一個磁盤分區,在分區建立好后,輸入"pvcreate 新的磁盤分區"將磁盤分區添加到PV中,再輸入"vgextend vg0 新的磁盤分區"將新加入的空間添加到vg中。

   3、磁盤縮小

         xfs的文件模式不能進行磁盤縮小,所以如果有需要用到磁盤縮小,需要將磁盤格式化成"ext4"文件模式。

         如下圖所示,在進行磁盤縮小之前,取消掛載后將文件格式格式化為"ext4"。

         在進行磁盤縮小時,必須先縮小設備,再縮小lv0,縮小空間如下圖步驟所示,先對設備取消掛載,再輸入"e2fsck -f /dev/vg0/lv0"對設備中的文件進行掃描,使得數據安全,這樣在縮減過度時會警告。完成后輸入"resize2fs /dev/vg0/lv0 200M"即將設備縮減至200M,這是對設備進行縮減。完成后重新掛載,再輸入"lvreduce -L 200M /dev/vg0/lv0"對lv0進行縮減。

        "ext4"文件模式下的空間添加和xfs相同,但是在最后一步格式化添加空間時需要輸入"resize2fs /dev/vg0/lv0",而不是輸入"xfs_growfs /dev/vg0/lv0"。

   4、PV中磁盤的移除

         有多個磁盤並且空間還充足時,如果需要移除其中的一個磁盤,則需要進行以下操作:

         如果移除的磁盤中有數據,就需要使用"pvmove 移除磁盤 其他磁盤"來將移除磁盤的數據移入其他磁盤當中。

         完成數據移動或者移除磁盤沒有數據,輸入"vgreduce vg0 移除磁盤",將移除磁盤的空間從vg中取出來。最后輸入"pvremove 移除磁盤"即可將指定磁盤移除。

   5、數據備份

          與快照相似,LVM中也提供快照備份的功能,例如下圖,將目錄掛載在/mnt下,並在其中建立10個文件,取消掛載后輸入命令"lvcreate -L xxxM -n lv0-backup -s /dev/vg0/lv0"來對磁盤進行快照備份,xxxM為快照數據需要改變的大小,可以自行設置。完成后重新掛載到/mnt下。

          快照備份完成后,輸入"rm -fr /mnt/*"刪除這10個文件,此時這10個文件並沒有被永久刪除,取消掛載后輸入"lvremove /dev/vg0/lv0-backup"刪除這個快照備份,再輸入"lvcreate -L xxxM -n lv0-backup -s /dev/vg0/lv0"重新進行快照備份,完成后掛載到/mnt下,刪除的10個文件就會重新出現。

   6、LVM的移除

         在不需要使用LVM時,就可以對LVM進行移除了。移除的步驟如下圖所示:

         首先取消掛載,輸入"lvremove /dev/vg0/lv0-backup"刪除快照,如果沒有可忽略,輸入"lvremove /dev/vg0/lv0"移除LV,輸入"vgremove vg0"移除VG,輸入"pvremove 磁盤分區"移除PV,至此LVM的移除就完成了。

         完成后也可以輸入"pvs"、"vgs"和"lvs"查看是否移除。

         以上就是LVM在學習工作中的一些簡要介紹與應用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM