1、Linux LVM文件系統(tǒng)
1.1 新建
Step 1 物理分區(qū)fdisk
使用fdisk命令創(chuàng)建新分區(qū),并使用fdisk的t命令修改分區(qū)類型為8e(lvm類型)。默認(rèn)分區(qū)id都是83,即linux文件類型,文件類型ID為82,則為交換分區(qū)swap。
fdisk -l
fdisk /dev/sdb //分區(qū)后重啟linux(或執(zhí)行partprobe,不需重啟即可通知內(nèi)核)。
fdisk /dev/sdb
Command (m for help): n # 輸入n新建一個分區(qū)
Command action
e extended
p primary partition (1-4)
p # 輸入p新建一個主分區(qū)
Partition number (1-4): 1 # 分區(qū)號
First cylinder (1-1044, default 1): 直接回車,使用默認(rèn)的起始柱面
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +32G # 大小,如果直接回車,使用默認(rèn)截止柱面,那對于這塊硬盤,只建立一個分區(qū),大小是整個磁盤。
Command (m for help): t # 改變類型
Selected partition 1
Hex code (type L to list codes): 8e # LVM 的分區(qū)代碼;默認(rèn)分區(qū)id都是83,即linux文件類型;文件類型ID為82,則為交換分區(qū)swap。
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w # 輸入w, 保存分區(qū)表并退出
或者上面不執(zhí)行,直接使用整塊盤,后續(xù)/dev/sdb1替換為/dev/sdb。
Step 2 創(chuàng)建PV pvcreate
物理磁盤被格式化為PV,空間被劃分為一個個PE,每個默認(rèn)大小是4MB。
pvcreate /dev/sdb1
提示沒有此命令,則需要按照最后的指導(dǎo)安裝lvm。
Step 3 新建vgcreate
新建
vgcreate vgaze /dev/sdb1 /dev/sdb2 //新建卷組,dev下會多處一個名為vgaze的目錄。
Step 4 新建lvcreate
LV實際由LE組成,LE與PE一一對應(yīng),LV大小為PE的整數(shù)倍,組成LV的PE可能來自不同的物理磁盤。
新建
lvcreate -n lvaze -L 256M vgaze //在卷組vgaze中建立名為lvaze的邏輯卷,目錄vgaze中會多一個名為lvaze的符號鏈接。
lvdisplay
Step 5 創(chuàng)建文件系統(tǒng)
mkfs -t ext3 /dev/vgaze/lvaze //在lv上創(chuàng)建文件系統(tǒng)
Step 6 掛載
mkdir /root/aze //創(chuàng)建掛載點
mount /dev/vgaze/lvaze /root/aze //掛載文件系統(tǒng)
Step 7 更新/etc/fstab
內(nèi)核啟動過程會讀取/etc/fstab配置文件來自動掛載磁盤,把LVM創(chuàng)建的邏輯卷掛載信息寫入這個文件,就不需要在開機后手動掛載。
# 執(zhí)行vi /etc/fstab命令,在最后追加一行。
/dev/vgaze/lvaze /root/aze ext3 defaults 0 2
執(zhí)行:wq!保存退出
測試開機自動掛載
mount -a
df -h
1.2. 邏輯卷擴容
Step 1 新增硬盤創(chuàng)建物理卷(先fdisk)
pvcreate /dev/sdc1
Step 2 物理卷加入卷組
vgextend /dev/vgaze /dev/sdb1
Step 3 卸載
umount /dev/vgaze/lvaze
Step 4 擴展lv
lvextend -L +1024M /dev/vgaze/lvaze或lvresize -L 40G /dev/vgaze/lvaze或lvresize -L +20G /dev/vgaze/lvaze
Step 5 檢查磁盤錯誤,等待時間較長可以考慮跳過(掛載狀態(tài)無法檢查)
e2fsck -f /dev/vgaze/lvaze
Step 6 重設(shè)文件系統(tǒng)大小
resize2fs /dev/vgaze/lvaze
Step 7 掛載
mount -t ext2 /dev/vgaze/lvaze /root/aze
1.3 邏輯卷縮容
Step 1 卸載lv分區(qū)
umount /root/aze
Step 2 檢查磁盤錯誤
e2fsck -f /dev/vgaze/lvaze
Step 3 重設(shè)文件系統(tǒng)大小
resize2fs /dev/vgaze/lvaze 200M
Step 4 縮減lv大小
lvreduce -L 200M /dev/vgaze/lvaze或lvresize -L 10G /dev/vgaze/lvaze或lvresize -L -30g /dev/vgaze/lvaze
Step 5 掛載分區(qū)
mount /root/aze
1.4 Linux LVM擴容原分區(qū):
使用parted工具擴容擴展分區(qū)(柱面末端),或者新增主分區(qū),然后fdisk格式化、lvm管理。
parted工具擴容擴展分區(qū)
parted /dev/xxx
print 查看分區(qū)表,留意目標(biāo)分區(qū)的’Number’ 項,后面要用。
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 8589MB 8332MB extended
5 257MB 8589MB 8332MB logical lvm
涉及到磁盤大小變更,建議預(yù)留1G空間容差:
unit命令用于改變 parted 所用的描述大小的默認(rèn)單位(比如設(shè)為 ‘compact’ 就是以 ‘MB’ 為單位)。值得注意的是,如果用 MB/GB 這樣的單位,磁盤 sector 的選取會有誤差的。parted 會為你選最近的 sector,但未必精確。比如 unit 為 MB,那么可能產(chǎn)生 +-500KB 的誤差;如果是 GB,那就可能 +-500MB 的誤差,這就無法容忍了。所以如果是’創(chuàng)建分區(qū)’這樣的操作,建議用 ‘MiB’ 這樣的單位,而不是 ‘MB’。’MiB’ 會是一個精確值,parted 不會像對待 ‘MB’ 那樣去找它最近的單元。
對指定Number為2的分區(qū)從 start 位置為257MB到end位置為磁盤末尾。
resize 2 257MB -0
新增邏輯分區(qū)
通過 fdisk <disk_dev_name> 進入交互模式,可以通過命令 m 查看幫助。首先,輸入 n 創(chuàng)建新分區(qū),然后選擇 l 設(shè)置新分區(qū)為邏輯分區(qū),接下來依次設(shè)置分區(qū)的起始、終止位置(默認(rèn)即完全利用這塊磁盤上剩余的所有空間,所以默認(rèn)即可)。
以上也可以直接新增一個主分區(qū)/擴展分區(qū)
不能擴容主分區(qū),因為原來的分區(qū)已經(jīng)在使用不能格式化
格式化與使用lvm管理
把新分區(qū)的管理系統(tǒng)從 Linux 改為 Linux LVM,加入到現(xiàn)有l(wèi)v。
2、Linux ext文件系統(tǒng)管理
2.1新建分區(qū)
- Step 1 分區(qū)fdisk,參考以上
fdisk /dev/vdb - Step 2 創(chuàng)建文件系統(tǒng)mkfs,參考以上
mkfs -t ext4 /dev/vdb1 - Step 3 掛載mount,參考以上
mkdir /backup
mount /dev/vdb1 /backup/ - Step 4 更新/etc/fstab,參考以上
(只識別最大2T)
2.2 Linux ext擴容原分區(qū):只能對最后一個分區(qū)操作(柱面末端)
檢查一遍
先識別到當(dāng)前最后一個分區(qū)是sdb3,然后執(zhí)行
fsck -f /dev/sdb3
刪除現(xiàn)有分區(qū),重新分區(qū)
fdisk /dev/sdb3
- 輸入d刪除現(xiàn)有分區(qū),注意:刪除后千萬不要按w保存
- 輸入n創(chuàng)建新分區(qū),從原有柱面開始,到最后(默認(rèn)值兩次回車即可,如果之前的分區(qū)不是從第一柱面開始,則需要記錄之前分區(qū)的起始柱面)
- 新的分區(qū)操作完畢后,按w保存。
檢查一遍
fsck -f /dev/sdb3
重新定義分區(qū)大小
resize2fs /dev/sdb3
重新掛載分區(qū),查看分區(qū)
mount /dev/sdb3/mnt/
df -h
3、擴展
3.1 安裝LVM
uname -a //查看內(nèi)核信息
yum install lvm2 device-mapper //安裝 LVM2,linux內(nèi)核2.6.9版本開始,不用單獨安裝device-mapper,已經(jīng)包含在內(nèi),只需加載即可。
modprobe dm_mod //加載mapper模塊
lsmod | grep dm_mod //是否加載了dm_mod
3.2 LVM命令
| 任務(wù) | PV 階段 | VG 階段 | LV 階段 |
|---|---|---|---|
| 列出 (display) | pvdisplay | vgdisplay | lvdisplay |
| 搜尋 (scan) | pvscan | vgscan | lvscan |
| 創(chuàng)建 (create) | pvcreate | vgcreate | lvcreate |
| 刪除 (remove) | pvremove | vgremove | lvremove |
| 改變?nèi)萘?(resize) | lvresize | ||
| 擴展 (extend) | vgextend | lvextend (lvresize) | |
| 減少 (reduce) | vgreduce | lvreduce (lvresize) | |
| 改變屬性 (attribute) | pvchange | vgchange | lvchange |
change,有變化后需要激活?
3.3 /etc/fstab內(nèi)容介紹
/etc/fstab文件內(nèi)容有6列:
<file system> <dir> <type> <options> <dump> <pass>
/dev/vgaze/lvaze /root/aze ext3 defaults 0 2
第一列<file system>:磁盤/LV的路徑或UUID
第二列<dir>:掛載點目錄
第三列<type>:磁盤文件系統(tǒng)的格式
第四列<options>:文件系統(tǒng)參數(shù),defaults,等于rw, suid, dev, exec, auto, nouser, async。
第五列<dump>:dump utility根據(jù)此值決定是否備份,如果值為0,dump忽略此文件系統(tǒng),如果是1,dump會對此系統(tǒng)作一個備份。大部分用戶沒有安裝dump,所以這個值應(yīng)該寫為0。
第六列:是否用fsck檢驗文件系統(tǒng)完整性,值可以是0,1和2。 值為0,則不會被fsck utility檢查。值為1,擁有fsck檢查的最高優(yōu)先級,root文件系統(tǒng)應(yīng)該擁有最高的優(yōu)先權(quán)。其它文件系統(tǒng),如果想用fsck檢查,則值為2。
3.4 介紹主分區(qū)與擴展分區(qū),MBR與GPT
硬盤的第一個扇區(qū)(第0扇區(qū))用來存放主引導(dǎo)記錄(MBR),也稱MBR扇區(qū)。一個扇區(qū)是512字節(jié),因此MBR扇區(qū)的大小也是512字節(jié),其具體數(shù)據(jù)結(jié)構(gòu)是:446個字節(jié)的引導(dǎo)代碼、64個字節(jié)的分區(qū)表及2個字節(jié)的簽名值"55AA"。由于MBR的分區(qū)表只有64個字節(jié),一個分區(qū)需要16Bytes空間來存儲相關(guān)信息,所以分區(qū)表只能存儲4個分區(qū)記錄。
主分區(qū)(注意擴展分區(qū)也是一個主分區(qū))的最大個數(shù)是四,當(dāng)創(chuàng)建四個主分區(qū)時,就無法再創(chuàng)建擴展分區(qū)。
為了突破四個主分區(qū)的限制,更好規(guī)劃磁盤空間大小,Linux系統(tǒng)引入了擴展分區(qū)的概念(類似把主分區(qū)進行細(xì)分,衍生出二級分區(qū)表)。管理員可以把其中一個主分區(qū)設(shè)置為擴展分區(qū)(注意只能夠使用一個擴展分區(qū))來進行擴充。擴展分區(qū)無法直接使用,必須細(xì)分成邏輯分區(qū)才可以用來存儲數(shù)據(jù)。
MBR分區(qū)格式的最大分區(qū)為2TB,GPT分區(qū)沒有2TB的限制,理論上最大分區(qū)為18EB。如果要創(chuàng)建大于2TB的GPT分區(qū),就不能使用MBR 格式的分區(qū)表,需要使用linux 下的Parted分區(qū)工具。
#ThisIsAze