Linux之EXT4文件系统LVM环境移除home分区故障磁盘

一、需求说明

       整个系统挂载了三块硬盘,大小分别为20G,10G,10G;磁盘使用LVM逻辑卷方式管理,文件系统格式为ext4。其中/根分区10G,位于/dev/sda磁盘;/home分区25G,存储空间包括/dev/sda、/dev/sdb、/dev/sdc磁盘,现在磁盘/dev/sdb磁盘有坏道,需要移除,实际使用空间少于9.6G。需要通过缩小home逻辑卷大小,然后移除故障硬盘sdb。
       磁盘与分区映射关系如下图:
Linux之EXT4文件系统LVM环境移除home分区故障磁盘_第1张图片

       磁盘格式及使用率如下图:
Linux之EXT4文件系统LVM环境移除home分区故障磁盘_第2张图片

二、操作步骤

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
Linux之EXT4文件系统LVM环境移除home分区故障磁盘_第3张图片

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日。

你可能感兴趣的:(linux基础,硬件,ext4,磁盘移除,LVM,home分区,linux)