![我们可以向现有的已挂载的 ext3/ext4 挂载点添加更多卷/磁盘吗?](https://linux22.com/image/735140/%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E5%90%91%E7%8E%B0%E6%9C%89%E7%9A%84%E5%B7%B2%E6%8C%82%E8%BD%BD%E7%9A%84%20ext3%2Fext4%20%E6%8C%82%E8%BD%BD%E7%82%B9%E6%B7%BB%E5%8A%A0%E6%9B%B4%E5%A4%9A%E5%8D%B7%2F%E7%A3%81%E7%9B%98%E5%90%97%EF%BC%9F.png)
我想问一下关于通过新的磁盘/块设备向具有数据并已挂载的非 root/ext3 挂载点添加空间的问题。
我有一个 ext3 挂载点“/u01”,它附加了一个设备“/dev/sdb”。
[root@vm2 ~]# findmnt -l /u01
TARGET SOURCE FSTYPE OPTIONS
/u01 /dev/sdb ext3 rw,relatime,seclabel,errors=continue,user_xattr,acl,barrier=1,data=ordered
问题是这个设备几乎已满(67%)并且无法扩展。
[root@vm2 ~]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdb ext3 12G 7.5G 3.8G 67% /u01
[root@vm2 ~]#
因此我添加了另一个大小为 20g 的设备“/dev/sdk”,并对其进行了如下所示的分区。
[root@vm2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 5G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 4.5G 0 part
├─ol-root 252:0 0 16G 0 lvm /
└─ol-swap 252:1 0 512M 0 lvm [SWAP]
sdb 8:16 0 12G 0 disk /u01
sdc 8:32 0 30G 0 disk /u02
sdd 8:48 0 30G 0 disk /u03
sde 8:64 0 4G 0 disk /redo1
sdf 8:80 0 4G 0 disk /redo2
sdg 8:96 0 4G 0 disk /cntl1
sdh 8:112 0 4G 0 disk /cntl2
sdi 8:128 0 6G 0 disk /gghome
sdj 8:144 0 12G 0 disk
└─sdj1 8:145 0 12G 0 part
└─ol-root 252:0 0 16G 0 lvm /
sdk 8:160 0 20G 0 disk
└─sdk1 8:161 0 20G 0 part
sr0 11:0 1 1024M 0 rom
[root@vm2 ~]#
我想了解这个新设备“/dev/sdk1”是否也可以添加挂载点“/u01”,以便将其大小调整为 12g(sdb)+ 20g(sdk1),这样当我将大文件移动到/u01 时,不会出现空间错误。
到目前为止,我还没有看到任何明确的方法可以描述相同的情况。大多数人都在谈论扩展根分区(xfs),但对我来说,这个“/u01”不是安装在根分区上,而是安装在单独的 ext3 上。
以下是一些可能有帮助的输出。
[root@vm2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/ol-root xfs 16G 3.5G 13G 22% /
devtmpfs devtmpfs 2.4G 0 2.4G 0% /dev
tmpfs tmpfs 2.4G 80K 2.4G 1% /dev/shm
tmpfs tmpfs 2.4G 8.9M 2.4G 1% /run
tmpfs tmpfs 2.4G 0 2.4G 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 149M 349M 30% /boot
/dev/sdb ext3 12G 7.5G 3.8G 67% /u01
/dev/sdc ext3 30G 5.9G 23G 21% /u02
/dev/sdi ext3 6.0G 141M 5.5G 3% /gghome
/dev/sdh ext3 4.0G 137M 3.7G 4% /cntl2
/dev/sdd ext3 30G 173M 28G 1% /u03
/dev/sde ext3 4.0G 137M 3.7G 4% /redo1
/dev/sdg ext3 4.0G 137M 3.7G 4% /cntl1
/dev/sdf ext3 4.0G 137M 3.7G 4% /redo2
物理体积显示 (PVDISPLAY)
[root@vm2 ~]# pvdisplay /dev/sdk1
--- Physical volume ---
PV Name /dev/sdk1
VG Name ol
PV Size 20.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 5119
Free PE 5119
Allocated PE 0
PV UUID 5tsaXp-bz1j-UwLS-lLRk-capI-i4rW-ps9Lk4
卷组显示(vgdisplay)
[root@vm2 ~]# vgdisplay
--- Volume group ---
VG Name ol
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 4
Act PV 3
VG Size 86.50 GiB
PE Size 4.00 MiB
Total PE 22143
Alloc PE / Size 4225 / 16.50 GiB
Free PE / Size 17918 / 69.99 GiB
VG UUID Jfwpry-P7rO-NocS-DrVA-J3q2-tIOR-fkE41G
逻辑卷显示(lvdisplay)
[root@vm2 ~]# lvdisplay
--- Logical volume ---
LV Path /dev/ol/swap
LV Name swap
VG Name ol
LV UUID 3ZrLkL-JGYa-8EdA-oW7S-uCS2-dbmS-KdCI1h
LV Write Access read/write
LV Creation host, time localhost, 2016-03-06 14:40:27 -0800
LV Status available
# open 2
LV Size 512.00 MiB
Current LE 128
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 252:1
--- Logical volume ---
LV Path /dev/ol/root
LV Name root
VG Name ol
LV UUID WXQ5ne-UYgM-A53J-s1KE-ec72-Y52x-K5Qb1v
LV Write Access read/write
LV Creation host, time localhost, 2016-03-06 14:40:27 -0800
LV Status available
# open 1
LV Size 16.00 GiB
Current LE 4097
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 252:0
我已经尝试过下面的方法,但失败了,没有显示添加到“/u01”的新设备,这不起作用
[root@vm2 ~]# umount /u01
[root@vm2 ~]# mount /dev/sdk1 /u01
这也是我的 fstab 文件。
[root@vm2 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Mar 6 22:40:28 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/ol-root / xfs defaults 0 0
UUID=22363586-3aee-4128-aa86-4ff1ff7f30a2 /boot xfs defaults 0 0
/dev/mapper/ol-swap swap swap defaults 0 0
/dev/sdb /u01 auto defaults,nofail 0 2
/dev/sdc /u02 auto defaults,nofail 0 2
/dev/sdd /u03 auto defaults,nofail 0 2
/dev/sde /redo1 auto defaults,nofail 0 2
/dev/sdf /redo2 auto defaults,nofail 0 2
/dev/sdg /cntl1 auto defaults,nofail 0 2
/dev/sdh /cntl2 auto defaults,nofail 0 2
/dev/sdi /gghome auto defaults,nofail 0 2
最后是 Linux 版本
[root@vm2 ~]# uname -a
Linux vm2 3.8.13-55.1.6.el7uek.x86_64 #2 SMP Wed Feb 11 14:18:22 PST 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@vm2 ~]#
仅供参考:此服务器/虚拟机无法连接到互联网来下载自定义 rpm 或 mhddfs 或 unionfs 等软件包。因此只能采用传统方法。
任何帮助都将受到赞赏。
感谢 N23
答案1
不可以,您不能使用额外的块设备来扩展 ext* 文件系统。它始终驻留在单个块设备上。
因此,如果您可以扩展 /dev/sdb 的大小(例如,如果这是来自 RAID 卡的卷抽象,或者这是 VM),那么这将有效。重新启动或 scsi 总线重新扫描应该会更新块设备大小,之后您可以resize2fs /dev/sdb
在卸载该卷的情况下运行。
您可以将数据移动到 LVM 卷(通过基于文件的副本),无论如何我都建议这样做。LVM 为您提供了更加动态的块设备,并将为您的存储添加对 ext3 完全透明的功能(例如,能够在线扩展 EXT3 的块设备并将单个块设备扩展到多个磁盘 - 这项功能可以让您无需发表此帖子)。
您可以创建一个新的卷组和一个 20 GiB 的逻辑卷,如下所示:
wipefs -a /dev/sdk
vgcreate vg0 /dev/sdk
lvcreate -n lv0 -L 20G vg0
然后,您可以在生成的块设备上创建一个新的 ext3 文件系统,并将文件复制到其中。
mkfs -t ext3 /dev/vg0/lv0