Linux 下如何快速无损调整分区空间?

2015-09-28 10:54:23 +08:00
 fuxkcsdn
有台服务器之前的人只给了根目录 50G 的空间...日志文件一多空间就满了
服务器是线上的,有什么办法可以无损调整分区空间不?
8754 次点击
所在节点    Linux
17 条回复
dbak
2015-09-28 10:57:04 +08:00
用 mount --bind 命令把根分区的日志目录挂载到其他大分区。
izoabr
2015-09-28 11:00:00 +08:00
再弄个分区,挂载 /var/log 目录
要做到完全不离线操作比较难,至少要停一下写日志的相关服务,否则你 mount 新东西上去正在做的写入切换不过来。
先确定好方案,然后写个脚本,停服务, mv /var/log /var/log.old;mkdir /var/log , mount 新分区 /var/log ,然后启动服务,一气哈成,别手工操作。如果你的服务不是特别大,应该几秒钟的中断。

mount 新分区之后,老的 /分区空间还是暂用着得,所以你还要
izoabr
2015-09-28 11:01:35 +08:00
还要看一下 /var/log.old 看看怎么压缩或者归档日志,如果都不想要了,就直接删掉
izoabr
2015-09-28 11:02:12 +08:00
最后别忘了写 fstab
ivenvd
2015-09-28 11:02:36 +08:00
看你什么文件系统, ext4 分区扩展的话并不需要重新挂载吧……
不过如楼上所说,最好还是分多个区。
rhwood
2015-09-28 11:09:29 +08:00
如果是 lvm 的话就比较简单,不影响在线服务。
br00k
2015-09-28 11:11:57 +08:00
先备份。下个 gparted live cd ,进去以后有合并的功能,我虚拟机是这样调整没问题。不过只试过 ext4.
miemiekurisu
2015-09-28 11:25:48 +08:00
做 LVM 吧,又快又容易
fuxkcsdn
2015-09-28 11:34:21 +08:00
@rhwood
是 lvm
直接用 lvresize -L +200G VolGroup/lv_root 就可以了吗?
lvdisplay
--- Logical volume ---
LV Path /dev/VolGroup/lv_root
LV Name lv_root
VG Name VolGroup
LV UUID F3K4FB-4wGp-wEB9-GAcx-jSkd-q7M8-BJvo5K
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2014-04-16 23:02:58 +0800
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12800
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

--- Logical volume ---
LV Path /dev/VolGroup/lv_home
LV Name lv_home
VG Name VolGroup
LV UUID l1fQ6c-q6ep-uhsQ-QWvo-OhMQ-43zZ-gwHICZ
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2014-04-16 23:03:13 +0800
LV Status available
# open 1
LV Size 1.75 TiB
Current LE 459722
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

--- Logical volume ---
LV Path /dev/VolGroup/lv_swap
LV Name lv_swap
VG Name VolGroup
LV UUID GDwYzI-H4sz-u6Fu-wTcc-ATaw-566h-uJJ8f6
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2014-04-16 23:10:29 +0800
LV Status available
# open 1
LV Size 15.72 GiB
Current LE 4024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
zuo
2015-09-28 12:02:26 +08:00
肯定是 LVM
rhwood
2015-09-28 12:09:48 +08:00
@fuxkcsdn 是 lvm 就简单了,你看这个吧,需扶墙,写得够清楚了。
https://rbgeek.wordpress.com/2013/01/27/how-to-extend-the-root-partition-in-lvm/
dbak
2015-09-28 13:41:13 +08:00
LV Size 50.00 GiB
lv_root 一共就 50G 你扩不了了。。
你撑死还能把预留分区给弄出来
tune2fs -m 0 /dev/VolGroup/lv_root
likuku
2015-09-28 15:31:30 +08:00
lv 所在的 vg 还有空闲的话( vgs 看下 free 还有没有),是可以继续扩展 lv 的

lv 扩完,对此 lv 的 FS 再作在线扩容动作,完成即生效。

不同 FS 的扩容指令可能有差别, EXT4 是 resize /dev/lv_path 即可。
fuxkcsdn
2015-09-28 17:09:08 +08:00
@dbak 我如果把 lv_home 的空间先缩小下呢?在同一个 volgroup 里的应该可以这样操作吧?
jsfaint
2015-09-28 21:37:46 +08:00
前几天刚用 gparted 把 btrfs 分区调整了大小……
ryd994
2015-09-29 14:29:50 +08:00
@fuxkcsdn 缩小基本不能在线,不过 home 的话也许可以
GGGG430
2015-09-29 16:04:08 +08:00
用镜像光盘(u 盘)调整完分区就退出,或 gparted

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/224178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX