如何把linux的文件系统从ext2无损升级到ext4

如何把linux的文件系统从ext2无损升级到ext4,第1张

基本步骤:

1确认内核版本和系统环境支持ext4 (推荐升至2.6.28以上,lsmod |grep ext4)

2卸载要升级的分区(在线卸不掉则需要进单用户)

3 tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize来给分区加入ext4的特性

4 e2fsck -fDC0 /dev/sdb1 –y修复分区错误

5修改fstab中分区格式为ext4,reboot

关键点:

1tune2fs版本要高于1.41 否则不支持ext4的特性

2官方推荐使用2.6.28以上内核才稳定支持ext4

3对在使用的分区如var,一定要先卸载再 *** 作,并且重启之前一定要挨个执行完tune2fs,e2fsck,和vi /boot/fstab的修改,再重启,否则挂载就会出问题

网络资料:

一、测试场景

*** 作系统:CentOS 5.6 x86 64bit(内核2.6.18)

文件系统:ext3

硬盘:2块(sda1、sdb1),sdb1的挂载点为/Android,专门用来存储编译文件,在编译时报错。

二、升级前状态

查看系统内核版本:

# uname -r

2.6.18-238.el5

查看文件系统的情况:

# df -T

文件系统 类型1K-块已用可用 已用% 挂载点

/dev/mapper/VolGroup00-LogVol00

ext313077624 3342968 9059636 27% /

/dev/sda1ext3 1010861587679991 17% /boot

tmpfstmpfs 2574520257452 0% /dev/shm

/dev/sdb1ext38254240149624 7685324 2% /android

查看ext4特征是否激活:

# tune2fs -l /dev/sdb1 | grep extent

执行上述命令后无任何信息返回,说明/dev/sdb1的ext4特征没有激活,唯一的解决办法就是升级文件系统到ext4了。

三、软件下载及安装

e2fsprogs软件包下载页面:http://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/

接下来是源码编译安装过程:

# wget http://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/e2fsprogs-1.41.14.tar.gz

# tar -zxvf e2fsprogs-1.41.14.tar.gz

# cd e2fsprogs-1.41.14

# ./configure

# make &&make install

安装完毕后暂时不需要重启系统。第一次安装完毕时我就重启系统了,结果系统竟然崩溃了,因此e2fsprogs软件包安装完毕后不要立即重启服务器。

Word不保存会丢(假如这是真的),是因为没保存的文件并不在磁盘上,当我们Ctrl+S之后,它才会保存。不过这个保存完成也不一定意味着文件已经保存在磁盘上了。

在Linux系统中,常见的文件系统都不会在用户调用 write(2) 返回后就意味着文件已经写入磁盘(除非open的flag里面有 O_DIRECT ),要写的东西只是在内存中(如果内存够用),然后等一段时间后写入磁盘。那么问题来了,等多长时间呢?

文件系统刷新时间由这两个文件控制

它们的单位是0.01s,dirty_writeback_centisecs是刷新进程的唤醒间隔的,典型值为5s,不过刷新进程被唤醒也不一定会刷新,dirty_expire_centisecs会决定是否刷新,典型值为30s,也就是说,当一个文件修改时间超过30s,就一定会被刷新到磁盘上。手动设置常常这样写

linux服务器通过multipath多路径连接到共享存储,那么当文件系统空间不足的时候,有几种方式可以扩展文件系统的大小:

1、pv不变,原lun存储扩大容量,扩大lv,扩大文件系统

2、新增pv,加入到vg中,扩大lv,扩大文件系统

下文是针对场景1的情况下如何 *** 作(但是个人建议采取新建pv的方式2进行):

Environment

If you have this specific scenario, you can use the following steps:

Note: if these lv's are part of a clustered vg, steps 1 and 2 need to be performed on all nodes. 注意:集群模式下步骤1和步骤2两个节点都需要执行。

1) Update block devices

Note: This step needs to be run against any sd devices mapping to that lun. When using multipath, there will be more than one. 通过multipath -ll命令查看每个聚合卷对应的路径。

2) Update multipath device

例子:

3) Resize the physical volume, which will also resize the volume group

4) Resize your logical volume (the below command takes all available space in the vg)

5) Resize your filesystem

6) Verify vg, lv and filesystem extension has worked appropriately

模拟存储端扩容testlv增加

查看客户端多路径情况

客户端更新存储

更新聚合设备

更新pv空间

更新lv空间

更新文件系统空间


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8983870.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存