一、需求說明
整個系統掛載了三塊硬碟,大小分別為20G,10G,10G;磁盤使用LVM邏輯卷方式管理,檔案系統格式為ext4,其中/根磁區10G,位于/dev/sda磁盤;/home磁區25G,存盤空間包括/dev/sda、/dev/sdb、/dev/sdc磁盤,現在磁盤/dev/sdb磁盤有壞道,需要移除,實際使用空間少于9.6G,需要通過縮小home邏輯卷大小,然后移除故障硬碟sdb,
磁盤與磁區映射關系如下圖:

磁盤格式及使用率如下圖:

二、操作步驟
1、磁盤檢測
#lvm vgscan -v
#lvm vgchange -a y
#lvm lvs
#pvdisplay –m
#lvdisplay
#vgdisplay
#lsblk
#ll /dev/disk/by-path/
2、取消home磁區掛載
[root@lvext4test home]# umount /home
3、home磁區檢測
[root@lvext4test /]# e2fsck -f /dev/mapper/centos-home
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
/lost+found not found. Create? yes
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/centos-home: ***** FILE SYSTEM WAS MODIFIED *****
/dev/mapper/centos-home: 25/1638400 files (0.0% non-contiguous), 2646904/6551552 blocks
4、對邏輯卷重定義大小
縮寫/home邏輯卷大小為15G
[root@lvext4test /]# resize2fs -p /dev/mapper/centos-home 15G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/centos-home to 3932160 (4k) blocks.
Begin pass 3 (max = 200)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/centos-home is now 3932160 blocks long.
[root@lvext4test /]# lvreduce -L 15G /dev/mapper/centos-home
WARNING: Reducing active logical volume to 15.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce centos/home? [y/n]: y
Size of logical volume centos/home changed from 24.99 GiB (6398 extents) to 15.00 GiB (3840 extents).
Logical volume centos/home successfully resized.
5、查看物理卷情況
[root@lvext4test /]# pvdisplay -m
— Physical volume —
PV Name /dev/sda2
VG Name centos
PV Size 18.33 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 4692
Free PE 1622
Allocated PE 3070
PV UUID TwOYV9-riDJ-48qj-2ZGn-l7sN-kOmy-II0ioU
— Physical Segments —
Physical extent 0 to 509:
Logical volume /dev/centos/swap
Logical extents 0 to 509
Physical extent 510 to 3069:
Logical volume /dev/centos/root
Logical extents 0 to 2559
Physical extent 3070 to 4691:
FREE
— Physical volume —
PV Name /dev/sdb1
VG Name centos
PV Size 9.33 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2388
Free PE 0
Allocated PE 2388
PV UUID EJljP3-R6Tt-0B1G-hPD0-RiJG-iBgR-hX3T2u
— Physical Segments —
Physical extent 0 to 2387:
Logical volume /dev/centos/home
Logical extents 0 to 2387
— Physical volume —
PV Name /dev/sdc1
VG Name centos
PV Size 9.33 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2388
Free PE 936
Allocated PE 1452
PV UUID aUtFNK-atdP-zrqY-WpK4-SxRj-5jjO-ik0zd1
— Physical Segments —
Physical extent 0 to 1451:
Logical volume /dev/centos/home
Logical extents 2388 to 3839
Physical extent 1452 to 2387:
FREE
6、將要洗掉的盤的資料移動到別的盤
[root@lvext4test /]# pvmove /dev/sdb1
/dev/sdb1: Moved: 0.00%
/dev/sdb1: Moved: 3.39%
/dev/sdb1: Moved: 6.87%
/dev/sdb1: Moved: 10.55%
/dev/sdb1: Moved: 13.40%
/dev/sdb1: Moved: 17.42%
/dev/sdb1: Moved: 21.31%
/dev/sdb1: Moved: 24.04%
/dev/sdb1: Moved: 28.14%
/dev/sdb1: Moved: 31.11%
/dev/sdb1: Moved: 35.13%
/dev/sdb1: Moved: 38.82%
/dev/sdb1: Moved: 42.09%
/dev/sdb1: Moved: 46.40%
/dev/sdb1: Moved: 49.41%
/dev/sdb1: Moved: 53.18%
/dev/sdb1: Moved: 56.74%
/dev/sdb1: Moved: 59.80%
/dev/sdb1: Moved: 63.90%
/dev/sdb1: Moved: 67.42%
/dev/sdb1: Moved: 67.92%
/dev/sdb1: Moved: 72.03%
/dev/sdb1: Moved: 75.67%
/dev/sdb1: Moved: 79.90%
/dev/sdb1: Moved: 83.50%
/dev/sdb1: Moved: 87.27%
/dev/sdb1: Moved: 92.25%
/dev/sdb1: Moved: 95.98%
/dev/sdb1: Moved: 99.66%
/dev/sdb1: Moved: 100.00%
7、注銷要洗掉的硬碟/dev/sdc
#[root@lvext4test /]# pvchange -xn /dev/sdb1
Physical volume “/dev/sdb1” changed
1 physical volume changed / 0 physical volumes not changed
8、查看物理卷情況sdc是否轉為Allocatable NO狀態
#pvdisplay -m
9、將硬碟或磁區從邏輯卷組中洗掉,并洗掉物理盤
[root@lvext4test /]# vgreduce centos /dev/sdb1
Removed “/dev/sdb1” from volume group “centos”
[root@lvext4test /]# pvremove /dev/sdb1
Labels on physical volume “/dev/sdb1” successfully wiped.## 10、
10、掛載home目錄
[root@lvext4test /]# mount /dev/mapper/centos-home /home
11、LV狀態檢查
檢查物理卷
[root@lvext4test /]# pvdisplay
— Physical volume —
PV Name /dev/sda2
VG Name centos
PV Size 18.33 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4692
Free PE 0
Allocated PE 4692
PV UUID TwOYV9-riDJ-48qj-2ZGn-l7sN-kOmy-II0ioU
— Physical volume —
PV Name /dev/sdc1
VG Name centos
PV Size 9.33 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 2388
Free PE 170
Allocated PE 2218
PV UUID aUtFNK-atdP-zrqY-WpK4-SxRj-5jjO-ik0zd1
查看磁盤與磁區映射關系
[root@lvext4test /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 18.3G 0 part
├─centos-root 253:0 0 10G 0 lvm /
├─centos-swap 253:1 0 2G 0 lvm [SWAP]
└─centos-home 253:2 0 15G 0 lvm /home
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 9.3G 0 part
sdc 8:32 0 10G 0 disk
└─sdc1 8:33 0 9.3G 0 part
└─centos-home 253:2 0 15G 0 lvm /home
sr0 11:0 1 4.3G 0 rom
檢查磁盤空間
[root@lvext4test /]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root ext4 9.8G 1.2G 8.1G 13% /
devtmpfs devtmpfs 908M 0 908M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 8.9M 911M 1% /run
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/sda1 ext4 976M 115M 794M 13% /boot
tmpfs tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/centos-home ext4 15G 9.6G 4.3G 70% /home
檢查/home磁區資料
[root@lvext4test /]# ll /home/
total 10000048
-rw-r–r--. 1 root root 1024000000 Jan 5 08:31 10.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:22 1.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:23 2.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:24 3.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:25 4.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:26 5.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:27 6.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:28 7.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:29 8.dat
-rw-r–r--. 1 root root 1024000000 Jan 5 08:30 9.dat
drwx------. 2 bdsc bdsc 4096 Apr 11 2018 bdsc
drwx------. 2 root root 4096 Jan 5 22:32 lost+found
至此故障硬碟移除完成!
三、EXT4檔案系統的特點
1、更大的檔案系統和更大的檔案
Ext3檔案系統最多只能支持32TB的檔案系統和2TB的檔案,根據使用的具體架構和系統設定,實際容量上限可能比這個數字還要低,即只能容納2TB的檔案系統和16GB的檔案,而Ext4的檔案系統容量達到1EB,而檔案容量則達到16TB,這是一個非常大的數字了,對一般的臺式機和服務器而言,這可能并不重要,但對于大型磁盤陣列的用戶而言,這就非常重要了,
2、更多的子目錄數量
Ext3目前只支持32000個子目錄,而Ext4取消了這一限制,理論上支持無限數量的子目錄,
3、更多的塊和i-節點數量
Ext3檔案系統使用32位空間記錄塊數量和i-節點數量,而Ext4檔案系統將它們擴充到64位,
4、多塊分配
當資料寫入到Ext3檔案系統中時,Ext3的資料塊分配器每次只能分配一個4KB的塊,如果寫一個100MB的檔案就要呼叫25600次資料塊分配器,而Ext4的多塊分配器“Multiblock Allocator(MBAlloc)”支持一次呼叫分配多個資料塊,
5、持久性預分配
如果一個應用程式需要在實際使用磁盤空間之前對它進行分配,大部分檔案系統都是通過向未使用的磁盤空間寫入0來實作分配,比如P2P軟體,為了保證下載檔案有足夠的空間存放,常常會預先創建一個與所下載檔案大小相同的空檔案,以免未來的數小時或數天之內磁盤空間不足導致下載失敗,而Ext4在檔案系統層面實作了持久預分配并提供相應的API,比應用軟體自己實作更有效率,
6、延遲分配
Ext3的資料塊分配策略是盡快分配,而Ext4的策略是盡可能地延遲分配,直到檔案在緩沖中寫完才開始分配資料塊并寫入磁盤,這樣就能優化整個檔案的資料塊分配,顯著提升性能,
7、盤區結構
Ext3檔案系統采用間接映射地址,當操作大檔案時,效率極其低下,例如,一個100MB大小的檔案,在Ext3中要建立25600個資料塊(以每個資料塊大小為4KB為例)的映射表;而Ext4引入了盤區概念,每個盤區為一組連續的資料塊,上述檔案可以通過盤區的方式表示為“該檔案資料保存在接下來的25600個資料塊中”,提高了訪問效率,
8、新的i-節點結構
Ext4支持更大的i-節點,之前的Ext3默認的i-節點大小128位元組,Ext4為了在i-節點中容納更多的擴展屬性,默認i-節點大小為256位元組,另外,Ext4還支持快速擴展屬性和i-節點保留,
9、日志校驗功能
日志是檔案系統最常用的結構,日志也很容易損壞,而從損壞的日志中恢復資料會導致更多的資料損壞,Ext4給日志資料添加了校驗功能,日志校驗功能可以很方便地判斷日志資料是否損壞,而且Ext4將Ext3的兩階段日志機制合并成一個階段,在增加安全性的同時提高了性能 ,
10、支持“無日志”模式
日志總歸會占用一些開銷,Ext4允許關閉日志,以便某些有特殊需求的用戶可以借此提升性能,
11、默認啟用Barrier
磁盤上配有內部快取,以便重新調整批量資料的寫操作順序,優化寫入性能,因此檔案系統必須在日志資料寫入磁盤之后才能寫Commit記錄,若Commit記錄寫入在先,而日志有可能損壞,那么就會影響資料完整性,Ext4檔案系統默認啟用Barrier,只有當Barrier之前的資料全部寫入磁盤,才能寫Barrier之后的資料,
12、在線碎片整理
盡管延遲分配、多塊分配和盤區功能可以有效減少檔案的碎片,但碎片還是不可避免會產生,Ext4支持在線碎片整理,并將提供e4defrag工具進行個別檔案或整個檔案系統的碎片整理,
13、支持快速fsck
以前的檔案系統版本執行fsck時很慢,因為它要檢查所有的i-節點,而Ext4給每個塊組的i-節點表中都添加了一份未使用i-節點的串列,所以Ext4檔案系統做一致性檢查時就可以跳過它們而只去檢查哪些在使用的i-節點,從而提高了速度,
14、支持納秒級時間戳
Ext4之前的擴展檔案系統的時間戳都是以秒為單位的,這已經能夠應付大多數設定,但隨著處理器的速度和集成程度(多核處理器)不斷提升,以及Linux開始向其他應用領域發展,它將時間戳的單位提升到納秒,Ext4給時間范圍增加了兩個位,從而讓時間壽命在延長500年,Ext4的時間戳支持的日期到2514年4月25日,而Ext3只達到2038年1月18日,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/245645.html
標籤:其他
上一篇:【設計模式】單例模式(Singleton Pattern)
下一篇:集群概述及分類

