linux服務器新添加一塊硬盤,可以直接將盤格式化掛載就能用,比如掛載在/usr/local目錄,但是這樣有一個弊端,就是如果這一塊磁盤滿了,後續想要擴容的話,不能繼續掛載這個/usr/local掛載點上,對擴容造成一定的麻煩,爲此我們建議採用lvm的方式,這樣可以支持動態擴容磁盤。下面介紹詳細的操作方式:
1、查看當前分區信息
[[email protected] ~]$ sudo fdisk -l #注意需要root權限
Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0001598a
Device Boot Start End Blocks Id System
/dev/vda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/vda2 * 8390656 83879935 37744640 83 Linux
# 下面這段信息爲新加的500G磁盤
Disk /dev/vdb: 536.9 GB, 536870912000 bytes, 1048576000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9eec985f
2、對該磁盤進行分區
[[email protected] ~]$ sudo fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Partition number (1-4, default 1):
First sector (2048-1048575999, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575999, default 1048575999):
Using default value 1048575999
Partition 1 of type Linux and of size 500 GiB is set
Command (m for help): w
上面操作步驟解釋如下:
- 輸入:n【表示創建一個新的分區(new的意思)】
詢問我們是要創建主分區還是擴展分區,主分區最多隻能創建4個,如果創建了擴展分區那麼擴展分區需要佔用一個主分區。
注意: 擴展分區從5開始,無論主分區有沒有達到4個。 - 輸入:p【表示創建一個基本分區(p是基本分區,e是擴展分區)】
- 選擇分區編號,1~4,默認使用1,直接按回車即可。
- 選擇分區起始點,使用默認即可,直接按回車。
- 選擇分區終點,使用默認即可,直接按回車
- 分區完成,輸入w保存退出。
- 輸入m查看幫助,幫助信息如下:
a :設置可引導標記 b :修改bsd的磁盤標籤 c :設置DOS操作系統兼容標記 d :刪除一個分區 l :顯示已知的分區類型,其中82爲Linux swap分區,83爲Linux分區 m :顯示幫助信息 n :增加一個新的分區 o :創建一個新的空白的DOS分區表 p :顯示磁盤當前的分區表 q :退出fdisk程序,不保存任何修改 s :創建一個新的空白的Sun磁盤標籤 t :改變一個分區的系統號碼(比如把Linux Swap分區改爲Linux分區) u :改變顯示記錄單位 v :對磁盤分區表進行驗證 w :保存修改結果並退出fdisk程序 x :特殊功能 ```
3、更改分區編號
[[email protected] ~]$ sudo fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
...
我們需要將分區類型改成linux lvm卷才能創建lvm,通過下面4步完成:
- Command (m for help): t #更改分區編號
Selected partition 1 - Hex code (type L to list all codes): L #查看所有編號
- Hex code (type L to list all codes): 8e #將分區類型改成LinuxLVM
Changed type of partition ‘Linux LVM’ to ‘Linux LVM’ - Command (m for help): w #寫入磁盤(write)
操作如下圖:
4 、pv、vg和lv的關係:
- 一個硬盤分區組成一個pv(物理卷)
- 一個或者多個pv組成一個vg(卷組)
- 一個vg可以劃分出多個lv(邏輯卷)
5、創建pv
[[email protected] ~]$ sudo pvcreate /dev/vdb1
注意:這裏是爲磁盤分區vdb1創建pv,千萬別寫成vdb了。
6、創建vg
[[email protected] ~]$ sudo vgcreate vg01 /dev/vdb1 #vg01爲邏輯卷組名稱
7、創建lv
[[email protected] ~]$ sudo lvcreate -L 200G -n lv_data vg01
- -L:後面是要分給lv的大小,注意lv會耗費不到100MB,因此要-L後面跟的要小於1TB。
- -n:新建一個名字爲lv_data 的lv
8、格式化lv
[[email protected] ~]$ sudo mkfs.ext4 /dev/vg01/lv_data
9、磁盤掛載
9.1、開機自動掛載磁盤
在/etc/fstab文件最後,加入一行如下代碼:
[[email protected] ~]$ sudo echo '/dev/vg01/lv_data /data ext4 defaults 0 0' >> /etc/fstab
這段代碼解釋如下:
第一列:要掛載的磁盤
第二列:掛載點
第三列:文件類型
第四列:掛載選項,詳細參考man mount. 下面列出一些常用的選項:
auto: 系統自動掛載,fstab默認就是這個選項
ro: read-only
rw: read-write
defaults: rw, suid, dev, exec, auto, nouser, and async.
第五列:爲dump選項,設置是否讓備份程序dump備份文件系統,0爲忽略,1爲備份。
第六列:爲fsck選項,告訴fsck程序以什麼順序檢查文件系統,0爲忽略。
9.2、重新掛載
[[email protected] ~]$ sudo mkdir /data
[[email protected] ~]$ sudo mount -a
10、檢查是否掛載成功
[[email protected] ~]$ sudo df -h
11、擴容
- 添加新磁盤,參考新磁盤建LVM
- 用原磁盤剩餘容量擴容
聰明的你可能已經發現,我們剛剛新添加了一個500G的磁盤,但是我們只用了200G,我們可以通過下面這幾步擴容:[[email protected] ~]$ sudo lvextend -L +100G /dev/vg01/lv_data [[email protected] ~]$ sudo resize2fs /dev/vg01/lv_data [[email protected] ~]$ df -h
12、刪除pv
如果前面你創建的pv您不滿意,還可以刪除,但是/data目錄下的所有數據將會丟失。
- 卸載LV
[[email protected] ~]$ sudo umount /data
- 刪除pv
[[email protected] ~]$ sudo pvremove /dev/sdb1
- 確認pv是否成功刪除
[[email protected] ~]$ sudo pvdisplay