主頁 > 軟體設計 > Linux之EXT4檔案系統LVM環境移除home磁區故障磁盤

Linux之EXT4檔案系統LVM環境移除home磁區故障磁盤

2021-01-07 10:17:09 軟體設計

一、需求說明

整個系統掛載了三塊硬碟,大小分別為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)

下一篇:集群概述及分類

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more