邏輯卷管理器(LVM)是一種極其靈活的磁盤管理工具,它讓用戶可以從多個物理硬驅(qū)創(chuàng)建邏輯磁盤卷,并調(diào)整大小,根本沒有停機(jī)時間。不過,其強(qiáng)大的功能也有其缺點(diǎn):學(xué)用起來有點(diǎn)難度;與管理傳統(tǒng)的磁盤分區(qū)相比,使用多個命令行工具來創(chuàng)建LVM涉及更復(fù)雜的步驟。
不過對CentOS/RHEL用戶們來說有個好消息。最新版本的CentOS/RHEL 7現(xiàn)在隨帶系統(tǒng)存儲管理器(又叫ssm),這是一種統(tǒng)一的命令行界面,由紅帽公司開發(fā),用于管理各種各樣的存儲設(shè)備。目前,有三種可供ssm使用的卷管理后端:LVM、Btrfs和Crypt。
我在本教程中將演示如何借助ssm管理LVM卷。你會驚訝地發(fā)現(xiàn),創(chuàng)建和管理LVM卷原來是多么簡單的事。
準(zhǔn)備ssm
在新的CentOS/RHEL 7上,你需要首先安裝系統(tǒng)存儲管理器。
$ sudo yum install system-storage-manager
首先,不妨檢查關(guān)于可用硬驅(qū)和LVM卷的信息。下面這個命令將顯示關(guān)于現(xiàn)有磁盤存儲設(shè)備、存儲池、LVM卷和存儲快照的信息。輸出結(jié)果來自新安裝的CentOS 7,它在默認(rèn)情況下使用了LVM和XFS文件系統(tǒng)。
$ sudo ssm list
在這個例子中,有兩個物理設(shè)備(“/dev/sda”和“/dev/sdb”)、一個存儲池(“centos”),以及存儲池中創(chuàng)建的兩個LVM卷(“dev/centos/root”和“/dev/centos/swap”)。
將物理磁盤添加到LVM池
不妨將一個新的物理磁盤(比如/dev/sdb)添加到現(xiàn)有的存儲池(比如centos)。將新的物理磁盤添加到現(xiàn)有存儲池的命令如下:
$ sudo ssm add -p pool-name> device>
新設(shè)備添加到存儲池后,存儲池會自動自動擴(kuò)大,擴(kuò)大多少取決于設(shè)備的大小。檢查名為centos的存儲池的大小,如下所示。
正如你所見,centos存儲池已成功地由7.5GB擴(kuò)大到8.5GB。不過,眼下,位于存儲池中的磁盤卷(比如/dev/centos/root和/dev/centos/swap)并沒有使用變大的空間。為此,我們需要擴(kuò)大現(xiàn)有的LVM卷。
擴(kuò)大LVM卷
如果你在存儲池中有額外空間,可以擴(kuò)大存儲池中現(xiàn)有的磁盤卷。為此,使用ssm命令的resize選項。
$ sudo ssm resize -s [size] [volume]
不妨將/dev/centos/root卷的大小增加500MB。
$ sudo ssm resize -s+500M /dev/centos/root
核實現(xiàn)有卷增加后的大小。
$ sudo ssm list volumes
我們可以核實,/dev/centos/root卷的大小已從6.7GB增加到了7.2GB。不過,這并不意味著你立即就可以使用在卷中創(chuàng)建的文件系統(tǒng)里面的額外空間。你會發(fā)現(xiàn),文件系統(tǒng)大?。?ldquo;FS size”)仍然是6.7GB。
為了讓文件系統(tǒng)識別增加后的卷大小,你需要“擴(kuò)大”現(xiàn)有的文件系統(tǒng)本身。有不同的工具可用來擴(kuò)大現(xiàn)有的文件系統(tǒng),這取決于你使用哪種文件系統(tǒng)。比如說,有面向EXT2/EXT3/EXT4的resize2fs、面向XFS的xfs_growfs以及面向Btrfs的btrfs,不一而足。
在這個例子中,我們使用CentOS 7,XFS文件系統(tǒng)在默認(rèn)情況下創(chuàng)建。因而,我們使用xfs_growfs來擴(kuò)大現(xiàn)有的XFS文件系統(tǒng)。
擴(kuò)大XFS文件系統(tǒng)后,核實文件系統(tǒng)完全占用了整個磁盤卷的7.2GB。
創(chuàng)建新的LVM池/卷
在這個示例中,不妨看一下如何在物理磁盤驅(qū)動器上創(chuàng)建新的存儲池和新的LVM卷。如果使用傳統(tǒng)的LVM工具,整個過程相當(dāng)復(fù)雜,需要準(zhǔn)備分區(qū),需要創(chuàng)建物理卷、卷組、邏輯卷,最后還要建立文件系統(tǒng)。不過,若使用ssm,整個過程一蹴而就!
下面這個命令的作用是,創(chuàng)建一個名為mypool的存儲池,創(chuàng)建存儲池中名為disk0的500MB大小的LVM卷,使用XFS文件系統(tǒng)格式化卷,并將它掛載到/mnt/test下。立即就能領(lǐng)略到ssm的強(qiáng)大功能。
$ sudo ssm create -s 500M -n disk0 --fstype xfs -p mypool /dev/sdc /mnt/test
不妨核實已創(chuàng)建的磁盤卷。
對LVM卷拍取快照
使用ssm工具,你還可以對現(xiàn)有的磁盤卷拍取快照。請注意:只有含有卷的后端支持快照機(jī)制,快照才適用。LVM后端支持聯(lián)機(jī)快照功能,這意味著我們沒必要在離線狀態(tài)下對卷拍取快照。另外,由于ssm的LVM后端支持LVM2,快照具有讀取/寫入功能。
不妨對現(xiàn)有的LVM卷(比如/dev/mypool/disk0)拍取快照。
$ sudo ssm snapshot /dev/mypool/disk0
一旦快照拍取完畢,它將作為一個特殊的快照卷存儲起來,存儲了原始卷中拍取快照時的所有數(shù)據(jù)。
存儲快照后,你可以刪除原始卷,并掛載快照卷,以訪問快照中的數(shù)據(jù)。
請注意:當(dāng)你試圖在原始卷掛載時掛載快照卷,會得到下列出錯信息。
kernel: XFS (dm-3): Filesystem has duplicate UUID 27564026-faf7-46b2-9c2c-0eee80045b5b - can't mount
刪除LVM卷
刪除現(xiàn)有的磁盤卷或存儲池就跟創(chuàng)建磁盤卷或存儲池來得一樣容易。如果你試圖刪除已掛載的卷,ssm會自動先將它卸載。這方面沒有麻煩。
想刪除LVM卷:
$ sudo ssm remove volume>
想刪除存儲池:
$ sudo ssm remove pool-name>
結(jié)束語
但愿至此你已領(lǐng)略了ssm的強(qiáng)大功能。在企業(yè)存儲環(huán)境中,處理一大批的存儲設(shè)備、磁盤卷和文件系統(tǒng)是相當(dāng)常見的事?,F(xiàn)在你可以運(yùn)用單單一個命令行工具ssm,讓其后端為你完成任務(wù),而不是操心運(yùn)用許多不同的工具管理一整套存儲配置。對任何置身于復(fù)雜存儲管理環(huán)境的系統(tǒng)管理員來說,ssm絕對是一款必備工具。