引導目錄:windows
*磁盤分區centos
*分區工具安全
*磁盤格式化async
*文件系統類型ide
*磁盤修復工具
*磁盤修復工具性能
*分區的掛載學習
*掛載實例ui
*RAIDurl
*主要對RAID0、一、5進行介紹
*LVM(邏輯卷)
*邏輯卷的建立
*快照
經過近乎兩週的磁盤管理學習,從對磁盤懵懂的認識,到對磁盤真正的瞭解,可謂收穫頗深,快來看看小編學習的心路歷程吧。
1、磁盤分區
磁盤的分區有兩種類型:
*DOS分區方式
*GPT分區方式
在日常的windows系統之中,咱們很熟悉C盤、D盤等各個字母開頭的盤區,可是咱們可能沒有在乎過,其實一個磁盤只能分4個區,分爲主分區(primary)、擴展分區(extend),而咱們平時看到的E、F、G、H..等盤區是在擴展分區上進一步建立的邏輯分區,其實DOS分區方式和MBR分區方式是同一種分區方式,一般咱們的Windows分區都是採用的DOS分區方式,必需要有一個主分區,能夠沒有擴展分區,最都只能有一個擴展分區。一般咱們採用「3主+1擴展」模式,擴展中能夠在進行劃分,分出邏輯分區,擴展分區至關於一個盒子,盒子中裝了多個邏輯分區,其實擴展分區最多隻能分32個邏輯分區。
而在Linux下能夠支持DOS分區方式,也能夠支持GPT分區方式,下面是分區方式的介紹:
DOS分區方式:
MBR(512字節) |
分區1 |
分區2 |
分區3 |
分區4 |
MBR區包含了boot loader(446字節)、分區表(64字節)、結束位(2字節)
GPT分區方式:
保護區MBR |
EFI、分區表 |
分區1 |
分區2 |
.......... |
分區128 |
EFI、分區表 |
保護區其實只有結束位就能夠,不存放正真的東西,主要是爲了能使老系統可以識別到這是一個有分區信息的磁盤,不被識別人空分區。在保護MBR後有EFI頭部信息,定義了PGT分區的一些信息,和128個分區的信息表。後面緊接着就是128個分區,GPT分區方式最多支持128個分區,而磁盤的最後面是存放着分區表的備份。
分區工具:
針對DOS分區方式有fdisk分區工具,該工具不能對GPT分區進行分區。分區命令格式爲:
Fdisk /dev/sdx 直接進入交互式界面:
鍵入m會顯示幫助信息,p打印輸出當前的分區信息,n開始進行分區,會一步步提示你分區的步驟,小編這裏進行簡單的演示:
必定要記得保存退出,不然以前作的內容都前功盡棄。
針對GPT分區方式,有新的分區工具gdisk,該工具更適用於GPT分區方式,雖然能對DOS分區進行操做,進入後若是是對DOS分區的操做,會提示你這是一個無效的GPT分區,可是會自動把DOS分區轉換位GPT分區,因此進行分區的時候必定要選擇好分區工具,不然容易出錯。
gdisk分區工具與fdisk分區工具的使用方法是同樣的。這裏就不進行演示了,由於兩個工具的使用防輻射是同樣的。
還有一個萬能的分區工具: parted 該工具不只能夠對DOS的分區進行分區,還能夠對GPT分區進行分區,在對一個空白的磁盤進行分區前,須要制定一個分區類型(DOS/GPT),在該命令的交互模式的分區中,是不用手動保存的,直接自動生效。因此在使用parted進行分區的過程當中要格外的當心,不要分錯了。小面小編進行演示:
若是實現已經有了分區類型,就不用再進行mklabel這一步了。
2、磁盤格式化(文件系統)
咱們對磁盤進行分區以後,並不能直接進行使用,咱們須要對分區進行格式化,其實格式化也就是爲了指定一個文件系統。在Centos6中默認的文件系統是ext文件系統,在Centos7中默認的文件系統是xfs文件系統。
文件系統類型有:xfs ext2 ext3 ext4 vfat nfs swap .....
在Centos上咱們主要使用到的文件系統是ext 和xfs兩類文件系統,格式化磁盤的工具是:
mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.xfs mkswap mkfs.vfat ...
接下來小編進行實戰演示:
格式化爲ext文件系統:
mkfs.ext4 /dev/sda
mkfs -t ext4 /dev/sda
上面兩種方式均可以對分區進行格式化,所執行的命令都是來自一樣的命令,只是表現形式不同。
沒有格式化的分區是不能進行掛載的,因此須要對分區進行格式化才能夠正常的使用。
ext文件系統格式化
xfs文件系統格式化
對ext文件系統的格式化和對xfs文件系統的格式化是不同的。這裏小編就不對文件系統進行分析了。3、分區文件系統的修復
文件系統的檢測核修復:
*常發生於死機或者非正常關機以後
掛載爲文件系統標記爲「no clean」
!*注意:必定不要在掛載狀態下修復
文件系統一旦損壞會報出超級快損壞,這個時候查看mount,就會顯示該分區上的文件系統顯示爲no clean的標記。須要特別注意的是,修復的時候必定要在卸載分區的狀況下進行。
fsck(File Syetem Check)
可修復的文件系統類型有:
ext2 、ext三、ext四、 xfs...
修復命令爲:
fsck.ext2 fsck.ext3 fsck.ext4 fsck.xfs...
Fsck.ext4 /dev/sda
fsck -t FS_Type /dev/sda
選項:
-p :自動修復錯誤
-r :交互式修復錯誤
FS_TYPE必定要與分區上存在的文件類型相同
e2fsck:ext系列文件專用的檢測修復工具
-y: 自動回答爲yes
-f: 強制修復
接下來小編進行實戰演示:
對ext4文件系統的修復
修復完以後的數據是不會丟失的,若是修復的過程當中沒有報錯,能夠直接進行掛載,文件依舊存在。4、分區的掛載
掛載:將額外文件系統與根文件系統某現存的目錄創建起
關聯的關係,進而使得此目錄做爲其餘文件訪問入口的行爲。
卸載:爲解除此關聯關係的過程。
mount 掛載設備 掛載點
卸載時:可以使用設備名,也可使用掛載點
umount /dev/sdax
掛載點目錄通常爲空。若是掛載的目錄爲非空,則掛載點下原有文件在掛載後將會被臨時隱藏。
掛載分區的參數有三個:分區號(/dev/sda1)、卷標名、分區UUID。只有UUID是惟一的,因此採用UUID進行掛載是最可靠的。
若是想要永久掛載,也就是開機可以自動掛載,須要將掛載的信息寫入文件,記錄掛載信息的文件是/etc/fstab, 該文件規定了開機自動掛載的分區信息
/etc/fstab文件中的格式爲如圖所示:
fstab文件的截圖
第一列是被掛載的設備,可使用設備名,也可使用設備的卷標,也可使用設備的UUID,推薦使用UUID,由於卷標可能會重名,設備名也是可能重名的,而設備的UUID是惟一標識該設備的,因此使用UUID最靠譜,及時設備名變了,而不會影響系統識別掛載的信息。
第二列是掛載點(mount point)
第三列是掛載分區的文件系統類型。
第四列是默認開啓的一些工能
defaults:至關於rw, nosuid, dev, exec, auto, nouser, async
若是有沒有默認開啓的功能,能夠直接加在default的後面。
第五列的數字是,轉存頻率:0 表示不轉存,1 表示天天轉存,2 表示每隔一天轉存。
第六列是自檢次序:0 不自檢 1 自檢,2 、3 。。。 首先自檢;通常只有rootfs才用1。
咱們能夠直接將掛載信息寫入到/etc/fstab 文件中,而後執行mount -a 強制系統從新讀取/etc/fstab,當對該文件修改事後可使用該命令對掛載信息從新讀取。
查看掛載的信息:
df 查看當前掛載的狀況
mount只敲該命令是查看/etc/mtab文件,顯示當前已經掛載的全部設備。
mount 設備名 掛載點
-t 指定文件系統類型
-r 只讀掛載
--remount,ro|rw 也會更新/etc/fatab中的選項,若是與指定的衝突,則remount後指定的優先。
-n 隱藏掛載信息不顯示,但在/proc/mounts中能夠查到
-a 讀取/etc/fstab,掛載其中文件中修改了,而系統中沒有掛載的設備
-L 'LABEL' 以卷標指定掛載設備
-U 'UUID' 以UUID指定要掛載的設備
-B --bind 目錄掛載目錄(用處很是多,比較實用)
小實驗:
一、同一個設備掛載到不一樣的掛載點
能夠同時顯示出來,而且兩個文件夾中的數據同步,由於掛載的是同一個硬盤。
2 、一個掛載點掛載不一樣的設備。
將顯示最新掛載的那一個,舊的掛載點將被隱藏,但不是不存在。當新的掛載點卸載掉的時候,舊的掛載點將會從新生效。
5、RAID(磁盤陣列)
磁盤陣列(Redundant Arrays of Independent Disks,RAID),有「獨立磁盤構成的具備冗餘能力的陣列」之意。獨立磁盤冗餘陣列(RAID,redundant array of independent disks)是把相同的數據存儲在多個硬盤的不一樣的地方(所以,冗餘地)的方法。經過把數據放在多個硬盤上,輸入輸出操做能以平衡的方式交疊,改良性能。由於多個硬盤增長了平均故障間隔時間(MTBF),儲存冗餘數據也增長了容錯。
咱們這裏只針對RAID0 RAID1 和RAID5 進行說明。
一、RAID0 又名條帶卷,多個磁盤進行並排串聯,數據分塊分別存放到不一樣的串聯的磁盤上,能夠同時讀寫,因此提高了讀寫能力,可是容錯能力下降,不管那一塊盤壞掉,那麼數據就會丟失。
RAID0 特色:讀寫能力提高、無容錯能力、最少兩塊盤,總大小爲全部磁盤大小之和,不支持熱備盤。
二、RAID1 又名鏡像卷,多個磁盤進行串聯,數據在每一塊盤上都存放一份,全部,除了第一塊盤以外 全部的盤都至關於備份盤。因此容錯能力大大提高。
RAID1 特色:讀寫能力下降,容錯能力大大提高,最少兩塊盤,總大小始終爲一塊盤的大小,以容量最小的那塊磁盤爲準,支持熱備盤。
三、RAID5 RAID 5不單獨指定的奇偶盤,而是在全部磁盤上交叉地存取數據及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設備進行操做,提供了更高的數據流量。RAID 5更適合於小數據塊和隨機讀寫的數據。對於RAID 5來講,大部分數據傳輸只對一塊磁盤操做,並可進行並行操做。在RAID 5中有「寫損失」,即每一次寫操做將產生四個實際的讀/寫操做,其中兩次讀舊的數據及奇偶信息,兩次寫新的數據及奇偶信息。
RAID5特色:讀寫能力提高,容錯能力提高,最少三塊盤,總大小爲減去一塊盤的總大小之和。
建立RAID的命令:
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
-C --create /dev/mdx 建立名爲mdx的raid
-a yes 當沒有所指的/dev/mdx設備時, 自動建立該設備
-l --level n 所要建立的raid等級
-n n 該raid的數據盤有多少個成員
-x n 該raid的熱備盤有多少個 raid0 不支持-x
-c 值 指定chunk大小,僅限raid0 raid5
/dev/sdx.... 指定raid的成員盤。
raid的要求是:硬盤的大小要相同,不然,按最小的硬盤計算空間。
raid也是一種真是的硬盤,能夠分區,像正常的磁盤同樣,能夠經過格式化後進行掛載,RAID就至關於一整塊的磁盤,能夠對RAID進行分區,分區以後,能夠進行格式化,格式化以後能夠進行正常的掛載使用。分區和格式化方法與普通的磁盤是同樣的。
刪除RAID
umount 首先要進行卸載掛載點
mdadm -D /dev/md2 先查一下,該raid由哪有成員組成
mdadm -S /dev/md2 禁用該RAID
mdadm --zero-superblock /dev/sdf4 清空磁盤分區中的raid信息
mdadm /dev/md0 -f /dev/sdd 模擬將/dev/md0 raid中的sdd壞掉
mdadm /dev/md0 -r /dev/sdd 將/dev/md0 raid中的sdd 拔掉
mdadm /dev/md0 -a /dev/sdd 向/dev/md0 增長設備sdd 如數據盤不夠,則加爲數據盤,如夠,加爲熱備盤
mdadm -G /dev/md0 -n 6 -a /dev/sdh 將/dev/md0的數據盤設置爲6個,並將/dev/sdh加入爲數據盤。
mdadm -A /dev/md1 /dev/sdb /dev/sdc 當沒有將md1信息保存至mdadm.conf時,只能手動指定raid成員
mdadm -D -s > /etc/mdadm.conf 將全部的raid成員信息保存至mdadm.conf文件
mdadm -D -s /dev/md0 >> /etc/mdadm.conf 僅將md0的信處追加保存至mdadm.conf文件
mdadm -A /dev/md1 從/etc/mdadm.conf中讀取成員信息,並僅激活md1
mdadm -A -s 從/etc/mdadm.conf中讀取成員信息,並激活全部的raid
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
v 中止設備:mdadm –S /dev/md0
v 激活設備:mdadm –A –s /dev/md0 激活
v 強制啓動:mdadm –R /dev/md0
v 刪除raid信息:mdadm --zero-superblock /dev/sdb1
在建立完RAID後,須要將raid的信息到如到/etc/mdadm.conf,這樣在下次開機啓動以後,raid的建立信息纔不會丟失,查看全部raid的信息的命令是:
mdadm -D -s 能夠在後面指定某一個raid,單獨顯示某一個raid的信息。
6、LVM管理
LVM(邏輯卷管理器)的重點在於能夠彈性的調整filesystem的容量!而並不是在於數據的存儲效率及安全上面。LVM能夠整合多個實體partition在一塊兒,讓這些partition看起來就像是一個磁盤同樣!並且,能夠在將來新增會移除其餘的實體partition到這個LVM管理的磁盤當中。
LVM的主要做用就是能夠彈性的擴展分區的空間。
下面小編附上LVM的整個邏輯概念圖:
從從上面的結構圖中,咱們能夠看出,最底層是有真是的物理磁盤,或者磁盤分區也是能夠的。由disk進行建立爲pv(物理卷),VG(卷組)有若干個pv組成,pv就至關於一個小的塊,VG至關於整個磁盤,由塊組成了一整塊大磁盤,才vg之上能夠動態的分出分區來lv,lv纔是最終的邏輯卷。
LVM的整個管理一共有三個步驟:
PV的管理工具:
pvcreate /dev/md1 /dev/md2 建立物理卷,可指定多個
pvremove /dev/sda1 刪除物理卷,可指定多個
Pvmove /dev/sda1 /dev/sda2 將物理卷/dev/sda1上的數據移動到物理卷/dev/sda2上。
Pvscan 掃描當前的系統中全部的pv
Pvchange 修改pv的狀態。
-an /dev/sda 將/dev/sda處於非激活狀態
-ay /dev/sda 將/dev/sda開啓激活狀態
Pvs 簡單羅列pv信息
Pvdispaly 顯示pv的詳細信息。
VG的管理工具:
vgcreate vgmage26 /dev/md0p1 /dev/md1
-s 8M 指定PE大小,默認4M
vgchange -s 8M 更改PE大小
vgreduce vgmage26 /dev/md1 縮減卷組vgmage26
vgextend vgmage26 /dev/md1 擴展卷組vgmage26
vgremove vgmage26 刪除卷組mage26
vgs 簡單羅列pv信息
vgdispaly 顯示pv的詳細信息。
Lv的管理工具:
顯示邏輯卷 lvs Lvdisplay v
建立邏輯卷 lvcreate -L #[mMgGtT] -n NAME VolumeGroup
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg v
刪除邏輯卷 lvremove /dev/VG_NAME/LV_NAME
實驗1:擴展邏輯卷
1.先檢查須要擴展的大小,VG是否有足夠可用空間
若是不夠則
pvcreate /dev/md2
vgextend vgmage26 /dev/md2
2.如足夠則擴展邏輯卷大小
lvextend -L 1G/+1G /dev/vgmage26/lvmage26_01
lvextend -l +100%FREE /dev/vgmage26/lvmage26_01
3.擴展文件系統大小
resize2fs /dev/vgmage26/lvmage26_01
或 resize2fs /dev/vgmage26/lvmage26_01 500M 只增長到500M的文件系統
若是是xfs文件系統 用xfs_growfs
xfs_growfs /dev/vg01/lv01
lvextend -L +500M -r /dev/vgmage26/lvmage26_01 可在lvextend 時加-r 直接一步到位,先擴展邏輯卷大小後直接增長文件系統大小
實驗二、減少邏輯卷大小 僅支持Ext文件系統
1.umount /mnt/lvmage26_01
2.e2fsck -f /dev/vgmage26/lvmage26_01
3.resize2fs /dev/vgmage26/lvmage26_01 300M
該命令中的300M,必須放在lv的後面。
4.lvreduce -L 300M /dev/vgmage26/lvmage26_01
5.mount
注意:該實驗中,若是少了第二步,或者少了第三部,都是能夠實現邏輯卷的減少,可是會損壞磁盤中的數據,須要從新格式化。因此按步驟來,最後就不須要再從新格式化了,直接能夠掛載,數據還存在。
實驗3:將某塊盤從LVM中分離出來
1.先確保數據不在這塊PV上
用pvs查看
2.若是在這塊PV上,則將數據轉移到同卷組的其餘PV上
pvmove /dev/pv1名 /dev/pv2名(能夠不指定)
在數據遷移的時候,業務不會斷,能夠在被掛載的目錄中增長或減小數據。熱移動(已實驗驗證)
3.將pv從Vg中移出
vgreduce vg名 /dev/pv名
4.刪除該盤的pv屬性
pvremove /dev/pv名
當pv中有被vg佔用的磁盤的時候,是不能直接並強制移除該pv的,只能將空pv從vg中移除,
pv已經從vg中移除,能夠執行:pvremove /dev/sdbx
pv尚未從vg中移除,能夠:
pvremove /dev/sdbx --force --force
兩次--force就能夠強制移除了。
實驗4:將LVM遷移到其餘主機
1.將數據移到目標磁盤對應的PV上。(該磁盤不要有其餘與該PV無關的分區)
pvmove /dev/pv1名 /dev/pv2名
vgreduce vg名 /dev/pv(多餘) 移動除要移動的PV之外的其餘PV
2.確保要遷移的VG名與目的系統沒有同名的VG
vgrename vgmage26 vg02
lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必須)
3.umount /mnt/lvmage26_01/
4.vgchange -an vg02 禁用VG上的全部LV
5.vgexport vg名 導出卷組
關機(若是支持熱插排,則不用關機),拔硬盤,插到目標主機上。
6.pvscan 掃描系統上的pv
vgscan 掃描系統上的vg
lvscan 掃描系統上的lv
vgimport vg名 導入vg
vgchange -ay vg名 激活vg
7.mount /dev/vg名/lv名 /mnt/ 從新掛載lv
!*思想總結:
LVM的遷移其實就是把本機中的邏輯捲上的數據遷移到另外一臺機器上,而且保證邏輯卷還存在
遷移要看你怎麼遷移了,若是你想就把本邏輯卷直接遷移走,不想再備份數據或倒騰
取消該邏輯卷的掛載,umount /dev/vgxx/lvxx
查看目的主機上是否有重名的邏輯卷或重名的卷組,如有須要修改一個,不然就會致使有兩個重名但UUID不一樣的卷組,要命的是卷組重名,這個比較煩人,邏輯卷重名只要卷組不一樣,仍是能夠區分開的。
若是有重名:vgrename oldvgname newvgname
若是沒有改重名的名字,到目的主機上會有兩個重名的卷組,會致使使用中系統沒法區分開,這個時候能夠在目的主機上執行:vgrename vg-uuid newvgname
使用vg的UUID進行惟一匹配進行更名。能夠vgdisplay查看vg的uuid。
在導出以前還有個須要注意的地方,遷移的卷組若是還有其餘與移動的硬盤無關的磁盤,這個在遷移到別的主機上的後,會掃描到卷組中有缺失的pv,系統會報錯,在對該vg進行操做的時候,會提示錯誤信息,能夠加上-f,強制執行。
好比:vgimport vgname -f
或者能夠執行:
vgreduce --removemissing 將缺失的pv移除,就是將vg上沒有識別到的pv清除掉。
須要將vg導出,但導出以前首先要讓vg上的lv所有處於非激活狀態(inactive):
vgchange -an vgname (若是不指定vg名,會將全部的卷組所有置爲非激活裝態)
導出vgexport vgname
關機進行移除。
添加到另外一個主機上,使用pvscan lvscan vgscan 進行掃描識別到系統中的pv lv vg。
掃描到以後進行vg導入:vgimport vgname
激活: vgchange -ay vgname
就能夠掛載lv 了。
mount /dev/vgxx/lvxx /mountdir
疑難雜症:
同一主機上重名卷組名:使用卷組的uuid進行更名:
vgrename uuid newvgname
同一卷組上有其餘識別到的pv,使用vgreudce 將卷組上缺失的pv移除
vgreduce --removemissing --force newjiakevg
實驗小發現:
若是在敲卷組的時候不能進行自動補齊,有兩種可能:
一、卷組上沒有建立邏輯卷
二、卷組被致於非激活狀態。
三、除了格式化爲ext文件系統的邏輯卷能夠在centos6和centos7系統之間進行友好的遷移,在centos7中格式化爲xfs文件系統的邏輯卷遷移到centos6上以後,不能進行正常的掛載,有報錯。centos6中格式化爲xfs文件系統的邏輯卷遷移到centos7中,掛載正常。
邏輯卷管理器快照:
快照概念:快照是存放源文件系統中的文件信息,存儲的是文件iNode號對應的數據源。
快照定義的是某一時刻系統的狀態,若是對系統快照以後,系統中的原有數據減小了的時候,快照會將刪除減小的數據,存放到快照文件中,以備恢復快照使用。若是增長的數據,就不會再存放到快照中了。恢復快照的時候,快照文件中沒有記錄的文件數據就會自動刪除。
邏輯卷很脆弱,一旦空間沾滿就會崩潰。因此提早規劃好快照空間。
因爲快照區與本來的lv共用不少PE的區塊,所以快照區與被快照的lv必須在同一個vg上,系統恢復的時候的文件數量不能搞與快照區的實際容量。對邏輯卷建立的快照要與該邏輯卷同卷組。
快照是一個特殊的邏輯卷,同建立邏輯卷的方法同樣。
lvcreate -L +size -s -p r -n snap-name /dev/vgxx/lv01
-s:指定該邏輯卷爲快照區
-p:設定該快照邏輯卷只可讀
快照也是一個邏輯卷因此能夠被掛載,
mount /dev/vgxx/snap-name /dir
恢復快照的時候,必須將快照與被快照的邏輯卷所有卸載,不能佔線。
卸載完以後執行:
lvconvert --merge /dev/vgxx/snap-name
快照的刪除一樣須要保證快照不被掛載,而後執行邏輯卷刪除的方法:lvremove /dev/vgxx/snap-names
小編經過實驗得出:
當有快照的邏輯卷不支持在線擴展,邏輯卷的在線擴展是在邏輯卷的激活狀態下進行的。有快照就不支持在線擴展。只有先刪除快照,擴展完後再建立快照(能夠提早備份快照)。