centos7磁盤分區、格式化及LVM管理

磁盤分區、格式化及LVM管理

http://hongge.blog.51cto.com/

RHEL7如何對磁盤進行分區和格式化以及如何配置LVM,與以前版本的RHEL區別不大,可以通過disk工具(在圖形桌面中運行)或命令工具(如:fdisk、gdisk、parted)管理硬盤設備。fdisk可以配置MBR格式; gdisk配置gpt格式, parted可以自己選擇。

傳統的硬盤分區都是MBR格式,MBR分區位於0扇區,他一共512字節,前446字節是grub引導程序,這個會在後面學習;中間64字節是分區表,每個分區需要16個字節表示,因此主分區和擴展分區一共只能有4個分區,超過4個的分區只能從擴展分區上再設置邏輯分區來表示。每個分區的大小無法超過2T。 MBR的最後2個字節是結束符號

GPT格式,打破了MBR的限制,可以設置多達128個分區,分區的大小根據操作系統的不同有所變化,但是都突破了2T空間的限制。支持高達 18EB (1EB=1024PB,1PB=1024TB) 的卷大小,允許將主磁盤分區表和備份磁盤分區表用於冗餘,還支持唯一的磁盤和分區 ID (GUID)。

與 MBR 分區的磁盤不同,GPT的分區信息是在分區中,而不象MBR一樣在主引導扇區。爲保護GPT不受MBR類磁盤管理軟件的危害,GPT在主引導扇區建立了一個保護分區 (Protective MBR)的MBR分區表,這種分區的類型標識爲0xEE,這個保護分區的大小在Windows下爲128MB,Mac OS X下爲200MB,在Window磁盤管理器里名爲GPT保護分區,可讓MBR類磁盤管理軟件把GPT看成一個未知格式的分區,而不是錯誤地當成一個未分區的磁盤

在MBR硬盤中,分區信息直接存儲於主引導記錄(MBR)中(主引導記錄中還存儲着系統的引導程序)。但在GPT硬盤中,分區表的位置信息儲存在GPT頭中。但出於兼容性考慮,硬盤的第一個扇區仍然用作MBR,之後纔是GPT頭。

GPT的結構如下圖:

clip_image001

首先看看當前的硬盤信息

clip_image003

可以在/proc/partitions這個文件查看當前的分區

clip_image005

先試試MBR格式的分區,fdisk選項如下所示

clip_image007

輸入n,可以創建新的MBR分區,然後輸入p可以顯示當前的分區狀態

clip_image009

重複n的操作,添加其他分區。

注:MBR格式磁盤最多可以創建4個主分區或3個主分區1個擴展分區,在擴展分區中可以創建若干個邏輯分區。

注意id代表了磁盤的用途,可以通過t來改變

clip_image011

看看分區記錄

clip_image013

gdisk和fdisk非常類似

clip_image015

clip_image017

clip_image019

創建新分區的時候可以看見可以有128個分區

parted,和前兩個相比,更靈活,可以自行設定MBR或GPT格式和分區

clip_image021

通過mklabel msdos可以設定爲MBR格式,然後可以通過mkpart來劃分分區

clip_image023

msdos設定爲MBR格式,gpt設定爲GPT格式

primary代表主分區,extended代表擴展分區,logical代表邏輯分區。

set number flag state用於設置分區的用途,flag:boot、lvm、raid。State:on/off表示開啓或關閉。

parted工具分完區後無需保存,輸入q退出即可。

劃分好分區之後,還需要格式化才能使用。可以通過 mkfs/mkswap來格式化文件系統

#mkfs.xfs /dev/分區設備名或#mkfs -t xfs /dev/分區設備名

clip_image025

可以修改fstab實現自動加載

clip_image027

測試是否能自動掛載

clip_image029

通過df -h查看已經掛載了的設備

-T選項可以顯示設備的文件系統類

有的掛載點路徑比較長,自動分2行顯示,可以-P強制一行顯示

如同進程有pid,用戶有uid,每個文件系統也有自己的id,稱爲uuid,但是不是每個分區都有;如果某個分區沒有文件系統,那麼這個分區是沒有uuid的。

可以通過 blkid(block id)來查看。注意uuid標記的是文件系統,而不是分區。uuid的好處在於可以通過uuid這個唯一值來掛載系統,這樣可以避免因爲刪除硬盤造成的錯位,sda6變成了sda5等等

clip_image031

我們可以通過xfs_admin -U 來手動更改文件系統的uuid

clip_image033

附:在目錄裏面可以通過 ls -ld查看目錄的屬性,ls -la查看內容的屬性,但是-ld顯示的目錄大小隻有4K,這僅僅是目錄本身的大小,要想查看目錄和其內容的整個大小,可以通過du來查看,如果只想看最終結果,使用-s(summary)就行了

clip_image035

下面我們來看看swap分區如何手動創建。swap類似windows的虛擬內存/page file,當內存不足的時候,數據保存在swap中。

有兩種方式可以使用:

第一種單獨用一個分區來作爲swap

clip_image037

創建一個分區(如:/dev/sdb3),並更改分區ID爲82

執行partx –a /dev/sdb命令,使分區修改生效

在分區上創建swap文件系統

clip_image039

修改fstab實現自動加載

clip_image041

第二種方式是創建一個文件塊,這個文件所佔有的空間作爲swap使用

clip_image043

對於普通的分區,擴展度不高,一旦分區格式化完成,很難靈活的再增加或者減少分區大小。爲了解決這個問題,可以使用LVM(邏輯卷)。基本過程是把物理磁盤或者分區初始化稱爲物理卷(PV),然後把PV加入VG(卷組),最後在VG上劃分邏輯的分區(LVM),LVM可以當做普通的分區進行格式化和掛載。

將準備的磁盤或分區創建PV

clip_image045

可以執行pvdisplay查看PV的詳細信息,pvremove刪除PV

創建完PV,之後,需要創建VG,然後添加PV到VG中

可以通過vgdisplay查看具體的信息,注意PE的Size是4M,這個是增減的最小計算單位

clip_image046

注:創建VG時:使用–s選項的作用是在創建時指定PE塊(物理擴展單元)的大小,默認是4M。

如:# vgcreate volGroup03 -s 8M /dev/sdb[12])

我們可以繼續往vg裏面添加新的分區

clip_image048

若事先沒有把sdb3轉化爲pv,而是直接添加到vg裏面,不過一旦添加了他自動就初始化成pv了。

可以添加當然也可以減少pv。 #vgreduce vg00 /dev/sdb3

VG準備就緒,可以創建了LVM了

clip_image049

注意看他的大小其實是112M,因爲PE的大小是4M,這個4M是最小單位,不能破開,因此28個PE就是112M

clip_image050

clip_image051

注:大L可以直接指定大小,小l是指定多少個PE的值

也可以設置剩餘空間的百分比

clip_image052

刪除邏輯卷 #lvremove /dev/vg00/lv01

對已經創建的邏輯卷,可以當做普通分區一樣格式化和掛載

clip_image054

修改/etc/fstab文件實現開機自動掛載。

擴展一個邏輯卷,增加300M,首先要確保卷組有大於300M的空閒空間。

clip_image055

執行lvextend擴展邏輯卷大小

clip_image057

注意邏輯卷的文件系統仍然是109M沒有改變,我們還需要填充文件系統的空白。

RHEL7可以用xfs_growfs來擴大XFS文件系統,也可以直接用resize2fs 來處理設備

注意的是 XFS系統只能增長,不能減少!因此如果需要減少LVM的話,分區只能使用ext4了

clip_image059

執行df查看擴展後的文件系統

clip_image061

邏輯卷快照

LVM提供一個極妙的設備,它是snaphot。允許管理員創建一個新的塊裝置,在某個時間點提供了一個精確的邏輯卷副本,快照提供原始卷的靜態視圖LVM 快照通過把文件系統的改變記錄到一個快照分區,因此當你創建一個快照分區時,你不需要使用和你正創建快照的分區一樣大小的分區,所需的空間大小取決於快照的使用,所以沒有可循的方法來設置此大小。如果快照的大小等於原始卷的大小那麼快照永遠可用。

快照是特殊的邏輯卷,只可以對邏輯卷做快照。邏輯卷快照和需要做快照的邏輯卷必須在同一個卷組裏面

現在在我們的系統中有個邏輯卷/dev/vg00/lv00,我們用lvdisplay來查詢一下這個邏輯卷

clip_image063

clip_image065

可以看到,這個邏輯卷/dev/vg00/lv00的大小是309M。我們將這個邏輯卷/dev/vg00/lv00掛載到/data下面。複製一些數據到/data裏面去。方便等下做試驗

clip_image066

現在我們就爲邏輯卷/dev/vg00/lv00來做快照

clip_image068

執行lvscan查看創建好的邏輯卷

clip_image069

可以看到/dev/vg00/lv00是原始邏輯卷,而/dev/vg00/lvsp00是快照

執行lvdisplay或lvs命令查看邏輯信息

clip_image071

可以看到邏輯卷快照創建成功了,

注意:這個快照卷建好之後,是不需要格式化也不需要進行掛載的。格式化或掛載都會出現的錯誤提示的。

模擬將原邏輯卷中的數據刪除

clip_image073

如何恢復原邏輯卷的數據?有兩方式可以恢復刪除的數據

方式一是先將原邏輯卷卸除掛載#umount /dev/vg00/lv00

然後掛載邏輯卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常訪問數據了

clip_image075

方式二可以通過 lvconvert把快照的內容重新寫回原有的lvm

先將原邏輯卷卸除掛載#umount /dev/vg00/lv00

執行lvconvert將快照的數據合併到原邏輯卷 #lvconvert --merge /dev/vg00/lvsp00

最後掛載原邏輯卷,查看數據是否恢復成功

clip_image077

注:當我們把原邏輯卷裏面的數據給刪除了,邏輯卷快照裏面的數據還在,所以可以用快照恢復數據。而當我們在邏輯卷裏面添加數據,快照是不會發生改變的,是沒有這個文件的。因爲快照只會備份當時邏輯卷的一瞬間。

使用ssm(系統存儲管理器)進行邏輯管理

邏輯卷管理器(LVM)是一種極其靈活的磁盤管理工具,它讓用戶可以從多個物理硬驅創建邏輯磁盤卷,並調整大小,根本沒有停機時間。最新版本的CentOS/RHEL 7現在隨帶系統存儲管理器(又叫ssm),這是一種統一的命令行界面,由紅帽公司開發,用於管理各種各樣的存儲設備。目前,有三種可供ssm使用的卷管理後端:LVM、Btrfs和Crypt

準備ssm,在CentOS/RHEL 7上,你需要首先安裝系統存儲管理器。可以通過rpm或yum工具安裝

clip_image079

首先我們來檢查關於可用硬盤和LVM卷的信息。下面這個命令將顯示關於現有磁盤存儲設備、存儲池、LVM卷和存儲快照的信息。

#ssm list

clip_image081

在這個例子中,有兩個物理設備(“/dev/sda”和“/dev/sdb”)、二個存儲池(“rhel和vg00”),以及存儲池rhel中創建的兩個LVM卷(“dev/rhel/root”和“/dev/rhel/swap”),存儲池vg00中創建的一個LVM卷(/dev/vg00/lv00)。

下面來講解如何通過ssm創建、管理邏輯卷和邏輯卷快照

至少新添加一塊磁盤,執行ssm命令顯示現有磁盤存儲設備、存儲池、LVM卷的信息

clip_image083

可以看到有兩塊空閒磁盤(sdc、sdd)

創建新的LVM池/卷

在這個示例中,不妨看一下如何在物理磁盤驅動器上創建新的存儲池和新的LVM卷。如果使用傳統的LVM工具,整個過程相當複雜,需要準備分區,需要創建物理卷、卷組、邏輯卷,最後還要建立文件系統。不過,若使用ssm,整個過程一蹴而就!

下面這個命令的作用是,創建一個名爲mypool的存儲池,創建存儲池中名爲lv01的500MB大小的LVM卷,使用XFS文件系統格式化卷,並將它掛載到/mnt/test下。

clip_image085

驗證ssm創建的結果

clip_image087

或執行ssm list

clip_image089

將物理磁盤(sdd)添加到LVM池

clip_image090

新設備添加到存儲池後,存儲池會自動擴大,擴大多少取決於設備的大小。檢查名爲centos的存儲池的大小執行ssm list查看

clip_image092

接下來,我們來擴大現有的LVM卷

擴大LVM卷,不妨將/dev/mypool/lv01卷的大小增加300MB。

如果你在存儲池中有額外空間,可以擴大存儲池中現有的磁盤卷。爲此,使用ssm命令的resize選項

clip_image094

執行ssm list查看擴大後邏輯卷

clip_image096

可以看到邏輯卷擴大到800M,即在原來的基礎上增加了300M,但文件系統大小(Fs size)還沒有改變,仍然是原來的大小。

爲了讓文件系統識別增加後的卷大小,你需要“擴大”現有的文件系統本身。有不同的工具可用來擴大現有的文件系統,這取決於你使用哪種文件系統。比如說,有面向EXT2/EXT3/EXT4的resize2fs、面向XFS的xfs_growfs以及面向Btrfs的btrfs,不一而足。

在這個例子中,我們使用CentOS 7,XFS文件系統在默認情況下創建。因而,我們使用xfs_growfs來擴大現有的XFS文件系統。

clip_image098

擴大XFS文件系統後,查看結果

clip_image100

或執行#df -hT

clip_image102

可以看到LVM擴展成功

邏輯卷快照

對現有的LVM卷(比如/dev/mypool/lv01)生成快照

一旦快照生成完畢,它將作爲一個特殊的快照卷存儲起來,存儲了原始卷中生成快照時的所有數據

clip_image103

clip_image105

clip_image107

每次原LVM中的數據更改,都可以手動執行ssm snapshot生成快照

當原LVM數據損壞就可以用快照恢復了

方式一是先將原邏輯卷卸除掛載 #umount /dev/vg00/lv00

然後掛載邏輯卷快照即可 #mount /dev/vg00/lvsp00 /data,就可以正常訪問數據了

clip_image109

方式二可以通過 lvconvert把快照的內容重新寫回原有的lvm

先將原邏輯卷卸除掛載#umount /dev/vg00/lv00

執行lvconvert將快照的數據合併到原邏輯卷 #lvconvert --merge /dev/vg00/lvsp00

最後掛載原邏輯卷,查看數據是否恢復成功

clip_image111

有磁ssm的具體用法可以參考ssm的幫助手刪頁

如:刪除LVM卷#ssm remove <volume>

刪除存儲池#ssm remove <pool-name>

http://hongge.blog.51cto.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章