摘要:最近項目組里來了很多新人,對linux分區及各種應用使用的分區不了解,導致測試數據庫時突然發現某一個分區被寫滿了,不得不重裝os.實在看不下去了,特此分享我的一些利用lvm實現動態擴容的心得,希望對大家有幫助。
知識儲備:
lvm是邏輯盤卷管理(logical volumemanager)的簡稱,它是linux環境下對磁盤分區進行管理的一種機制,lvm是建立在硬盤和分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過lvm系統管理員可以輕松管理磁盤分區,如:將若干個磁盤分區連接為一個整塊的卷組(volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),并進一步在邏輯卷組上創建文件系統。管理員通過lvm可以方便的調整存儲卷組的大小,并且可以對磁盤存儲按照組的方式進行命名、管理和分配
lvm模型如下圖:
1.安裝os時,選擇手動分區,device type選擇lvm。mysql/mariadb數據存放在 /var,oracle數據存放在 /home,所以在手動分區時請根據實際磁盤大小,對這兩個應用有針對性的將 /var、/home分的更大。下面分區情況僅作演示用:
2.安裝完os后進入系統,查看分區,可以看到裝系統時采用lvm的三個分區:/、 /home、/var
3.安裝os時忘記創建root賬戶了,不過沒關系,執行‘sudosu root ',再輸入目前登陸用戶密碼即可獲取部分root權限
4.查看卷組名稱及卷組使用情況 vgdisplay
5.查看當前邏輯卷的空間狀態,如下圖:/ 50g、/var 200g、/home 100g、swap 20g
6.現在感覺/home 100g不夠用,想擴容至120g,新插入一塊20g硬盤;用‘fdisk -l'查看
7.格式化分區操作‘fsdisk/dev/sdb'
8.把新加的磁盤設置為lvm模式
確認分區
9.將新加的分區/dev/sdb1創建為物理卷
10.給卷組‘cl'擴容,將物理卷/dev/sdb1擴展至‘cl'卷組
此時卷組‘cl'有20g空余空間,及/dev/sdb1,將其全部擴展至/home
11.此時20g磁盤雖已擴展至 /home,但并沒寫入文件系統;進入/etc/fstab確認 /home文件系統--->ext4
12.寫入文件系統,使擴容生效
13.如果是xfs文件系統,則用‘xfs_growfs /dev/mapper/cl-home';查看/home,已實現擴容。大功告成!
本次擴容指令匯總:
1.創建分區 #fdisk /dev/sdb
2.創建物理卷 #pvcreat /dev/sdb1
3.查看卷組名稱及使用情況 #vgdisplay
4.將物理卷擴展到卷組 #vgextend cl /dev/sdb1 (此處‘cl'是卷組名稱)
5.將卷組中空閑空間擴展到 /home #lvextend -l +100%free /dev/mapper/cl-home
6.刷新文件系統是擴容生效 #resize2fs /dev/mapper/cl-home
使用reiserfs 文件系統代替ext2/ext3 #resize_reiserfs /dev/mapper/cl-home
centos7 默認文件系統是 ‘xfs',我分區時選的是‘ext4'
項目實戰:
mpx跑磁盤將 /寫滿,導致gui進不去,用此法給 /動態擴容,gui又回來了,哈哈哈
擴容前
擴容后
gui又回來了
另附個人對linux分區的一些認識:
在linux里一切皆文件,所有設備、磁盤都是以文件形式掛在 ‘ / '。本文中提到的 /var ,如果安裝os時不手動對 /var 分區,系統默認會創建 /var ,但是系統創建的 /var ,最大可用存儲空間為‘ / '的大小。另外,像 /boot 或 /boot/efi 里只存放linux os的引導文件,沒必要分的太大。
總結:安裝os時選擇lvm,當跑數據庫發現分區不夠用時,即可按此法實現動態擴容,而不破壞分區內原有文件,更不用重裝系統,媽媽再也不用擔心我分區大小夠用了!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://blog.csdn.net/u012439646/article/details/73380197