在本篇文章中,我們将讨論在 rhel 7 中如何使用傳統的工具來設定和配置本地系統存儲,并介紹系統存儲管理器(也稱為 ssm),它将極大地簡化上面的任務。

rhcsa: 配置和加密系統存儲 – part 6
請注意,我們将在這篇文章中展開這個話題,但由于該話題的寬泛性,我們将在下一期中繼續介紹有關它的描述和使用。
<a target="_blank"></a>
在 rhel 7 中, parted 是預設的用來處理分區的程式,且它允許你:
展示目前的分區表
操縱(擴大或縮小分區的大小)現有的分區
利用空餘的磁盤空間或額外的實體儲存設備來建立分區
強烈建議你在試圖增加一個新的分區或對一個現有分區進行更改前,你應當確定該裝置上沒有任何一個分區正在使用(<code>umount /dev/分區</code>),且假如你正使用裝置的一部分來作為 swap 分區,在進行上面的操作期間,你需要将它禁用(<code>swapoff -v /dev/分區</code>) 。
實施上面的操作的最簡單的方法是使用一個安裝媒體例如一個 rhel 7 的 dvd 或 usb 安裝盤以急救模式啟動 rhel(<code>troubleshooting</code> → <code>rescue a red hat enterprise linux system</code>),然後當讓你選擇一個選項來挂載現有的 linux 安裝時,選擇“跳過”這個選項,接着你将看到一個指令行提示符,在其中你可以像下圖顯示的那樣開始鍵入與在一個未被使用的實體裝置上建立一個正常的分區時所用的相同的指令。
rhel 7 急救模式
要啟動 parted,隻需鍵入:
<code># parted /dev/sdb</code>
其中 <code>/dev/sdb</code> 是你将要建立新分區所在的裝置;然後鍵入 <code>print</code> 來顯示目前裝置的分區表:
建立新的分區
正如你所看到的那樣,在這個例子中,我們正在使用一個 5 gb 的虛拟驅動器。現在我們将要建立一個 4 gb 的主分區,然後将它格式化為 xfs 檔案系統,它是 rhel 7 中預設的檔案系統。
你可以從一系列的檔案系統中進行選擇。你将需要使用 <code>mkpart</code> 來手動地建立分區,接着和平常一樣,用<code>mkfs.類型</code> 來對分區進行格式化,因為 <code>mkpart</code> 并不支援許多現代的檔案系統的到即開即用。
在下面的例子中,我們将為裝置設定一個标記,然後在 <code>/dev/sdb</code> 上建立一個主分區 <code>(p)</code>,它從裝置的 0% 開始,并在 4000mb(4 gb) 處結束。
标記分區的名稱
接下來,我們将把分區格式化為 xfs 檔案系統,然後再次列印出分區表,以此來確定更改已被應用。
<code># mkfs.xfs /dev/sdb1</code>
<code># parted /dev/sdb print</code>
格式化分區為 xfs 檔案系統
對于舊一點的檔案系統,在 parted 中你可以使用 <code>resize</code> 指令來改變分區的大小。不幸的是,這隻适用于 ext2, fat16, fat32, hfs, linux-swap, 和 reiserfs (若 libreiserfs 已被安裝)。
是以,改變分區大小的唯一方式是删除它然後再建立它(是以,確定你對你的資料做了完整的備份!)。毫無疑問,在 rhel 7 中預設的分區方案是基于 lvm 的。
使用 parted 來移除一個分區,可以用:
<code># parted /dev/sdb rm 1</code>
移除或删除分區
一旦一個磁盤被分好了分區,再去更改分區的大小就是一件困難或冒險的事了。基于這個原因,假如我們計劃在我們的系統上對分區的大小進行更改,我們應當考慮使用 lvm 的可能性,而不是使用傳統的分區系統。這樣多個實體裝置可以組成一個邏輯組,以此來存放任意數目的邏輯卷,而邏輯卷的增大或減少不會帶來任何麻煩。
簡單來說,你會發現下面的示意圖對記住 lvm 的基礎架構或許有用。
lvm 的基本架構
遵循下面的步驟是為了使用傳統的卷管理工具來設定 lvm。由于你可以通過閱讀這個網站上的 lvm 系列來擴充這個話題,我将隻是概要的介紹設定 lvm 的基本步驟,然後與使用 ssm 來實作相同功能做個比較。
注: 我們将使用整個磁盤 <code>/dev/sdb</code> 和 <code>/dev/sdc</code> 來作為實體卷(pv),但是否執行相同的操作完全取決于你。
1. 使用 /dev/sdb 和 /dev/sdc 中 100% 的可用磁盤空間來建立分區 <code>/dev/sdb1</code> 和 <code>/dev/sdc1</code>:
<code># parted /dev/sdc print</code>
建立新分區
2. 分别在 /dev/sdb1 和 /dev/sdc1 上共建立 2 個實體卷。
<code># pvcreate /dev/sdb1</code>
<code># pvcreate /dev/sdc1</code>
建立兩個實體卷
記住,你可以使用 pvdisplay /dev/sd{b,c}1 來顯示有關建立的實體卷的資訊。
3. 在上一步中建立的實體卷之上建立一個卷組(vg):
<code># vgcreate tecmint_vg /dev/sd{b,c}1</code>
建立卷組
記住,你可使用 vgdisplay tecmint_vg 來顯示有關建立的卷組的資訊。
4. 像下面那樣,在卷組 tecmint_vg 之上建立 3 個邏輯卷(lv):
<code># lvcreate -l 3g -n vol01_docs tecmint_vg [vol01_docs → 3 gb]</code>
<code># lvcreate -l 1g -n vol02_logs tecmint_vg [vol02_logs → 1 gb]</code>
<code># lvcreate -l 100%free -n vol03_homes tecmint_vg [vol03_homes → 6 gb]</code>
建立邏輯卷
記住,你可以使用 lvdisplay tecmintvg 來顯示有關在 tecmintvg 之上建立的邏輯卷的資訊。
5. 格式化每個邏輯卷為 xfs 檔案系統格式(假如你計劃在以後将要縮小卷的大小,請别使用 xfs 檔案系統格式!):
<code># mkfs.xfs /dev/tecmint_vg/vol01_docs</code>
<code># mkfs.xfs /dev/tecmint_vg/vol02_logs</code>
<code># mkfs.xfs /dev/tecmint_vg/vol03_homes</code>
6. 最後,挂載它們:
<code># mount /dev/tecmint_vg/vol01_docs /mnt/docs</code>
<code># mount /dev/tecmint_vg/vol02_logs /mnt/logs</code>
<code># mount /dev/tecmint_vg/vol03_homes /mnt/homes</code>
7.現在我們将進行與剛才相反的操作并移除邏輯卷、卷組和實體卷:
<code># lvremove /dev/tecmint_vg/vol01_docs</code>
<code># lvremove /dev/tecmint_vg/vol02_logs</code>
<code># lvremove /dev/tecmint_vg/vol03_homes</code>
<code># vgremove /dev/tecmint_vg</code>
<code># pvremove /dev/sd{b,c}1</code>
8. 現在,讓我們來安裝 ssm,我們将看到如何隻用一步就完成上面所有的操作!
<code># yum update && yum install system-storage-manager</code>
我們将和上面一樣,使用相同的名稱和大小:
<code># ssm create -s 3g -n vol01_docs -p tecmint_vg --fstype ext4 /mnt/docs /dev/sd{b,c}1</code>
<code># ssm create -s 1g -n vol02_logs -p tecmint_vg --fstype ext4 /mnt/logs /dev/sd{b,c}1</code>
<code># ssm create -n vol03_homes -p tecmint_vg --fstype ext4 /mnt/homes /dev/sd{b,c}1</code>
是的! ssm 可以讓你:
初始化塊裝置來作為實體卷
建立一個卷組
格式化邏輯卷,以及
隻使用一個指令來挂載它們
9. 現在,我們可以使用下面的指令來展示有關實體卷、卷組或邏輯卷的資訊:
<code># ssm list dev</code>
<code># ssm list pool</code>
<code># ssm list vol</code>
檢查有關實體卷、卷組或邏輯卷的資訊
10. 正如我們知道的那樣, lvm 的一個顯著的特點是可以在不停機的情況下更改(增大或縮小)邏輯卷的大小:
假定在 vol02logs 上我們用盡了空間,而 vol03homes 還留有足夠的空間。我們将把 vol03homes 的大小調整為 4 gb,并使用剩餘的空間來擴充 vol02logs:
<code># ssm resize -s 4g /dev/tecmint_vg/vol03_homes</code>
再次運作 <code>ssm list pool</code>,并記錄 tecmint_vg 中的剩餘空間的大小:
檢視卷的大小
然後執行:
<code># ssm resize -s+1.99 /dev/tecmint_vg/vol02_logs</code>
注: 在 <code>-s</code> 後的加号暗示特定值應該被加到目前值上。
11. 使用 ssm 來移除邏輯卷和卷組也更加簡單,隻需使用:
<code># ssm remove tecmint_vg</code>
這個指令将傳回一個提示,詢問你是否确認删除卷組和它所包含的邏輯卷:
移除邏輯卷和卷組
ssm 也給系統管理者提供了為新的或現存的卷加密的能力。首先,你将需要安裝 cryptsetup 軟體包:
<code># yum update && yum install cryptsetup</code>
然後寫出下面的指令來建立一個加密卷,你将被要求輸入一個密碼來增強安全性:
<code># ssm create -s 3g -n vol01_docs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/docs /dev/sd{b,c}1</code>
<code># ssm create -s 1g -n vol02_logs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/logs /dev/sd{b,c}1</code>
<code># ssm create -n vol03_homes -p tecmint_vg --fstype ext4 --encrypt luks /mnt/homes /dev/sd{b,c}1</code>
我們的下一個任務是往 /etc/fstab 中添加條目來讓這些邏輯卷在啟動時可用,而不是使用裝置識别編号(/dev/something)。
我們将使用每個邏輯卷的 uuid (使得當我們添加其他的邏輯卷或裝置後,我們的裝置仍然可以被唯一的标記),而我們可以使用 blkid 應用來找到它們的 uuid:
<code># blkid -o value uuid /dev/tecmint_vg/vol01_docs</code>
<code># blkid -o value uuid /dev/tecmint_vg/vol02_logs</code>
<code># blkid -o value uuid /dev/tecmint_vg/vol03_homes</code>
在我們的例子中:
找到邏輯卷的 uuid
接着,使用下面的内容來建立 /etc/crypttab 檔案(請更改 uuid 來适用于你的設定):
<code>docs uuid=ba77d113-f849-4ddf-8048-13860399fca8 none</code>
<code>logs uuid=58f89c5a-f694-4443-83d6-2e83878e30e4 none</code>
<code>homes uuid=92245af6-3f38-4e07-8dd8-787f4690d7ac none</code>
然後在 /etc/fstab 中添加如下的條目。請注意到 devicename (/dev/mapper/devicename) 是出現在 /etc/crypttab 中第一列的映射辨別:
<code># logical volume vol01_docs:</code>
<code>/dev/mapper/docs /mnt/docs ext4 defaults 0 2</code>
<code># logical volume vol02_logs</code>
<code>/dev/mapper/logs /mnt/logs ext4 defaults 0 2</code>
<code># logical volume vol03_homes</code>
<code>/dev/mapper/homes /mnt/homes ext4 defaults 0 2</code>
現在重新開機(<code>systemctl reboot</code>),則你将被要求為每個邏輯卷輸入密碼。随後,你可以通過檢查相應的挂載點來確定挂載操作是否成功:
確定邏輯卷挂載點
在這篇教程中,我們開始探索如何使用傳統的卷管理工具和 ssm 來設定和配置系統存儲,ssm 也在一個軟體包中內建了檔案系統和加密功能。這使得對于任何系統管理者來說,ssm 是一個非常有價值的工具。
本文來自雲栖社群合作夥伴“linux中國”,原文釋出日期:2015-09-21 08:23