我有一个处理数据的服务器,它开始给我这个错误:
write error: no space left on device
cannot create temp file for here-document: no space left on device
虽然我使用 ubuntu 14.04 作为我的主要操作系统,但管理文件系统超出了我的理解范围,因此提出了这个问题。
df -h
印刷
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
99G 94G 16M 100% /
/dev/sda2 477M 39M 413M 9% /boot
/dev/sda1 200M 264K 200M 1% /boot/efi
/dev/mapper/VolGroup-lv_home
1.5T 453G 996G 32% /home
shmfs 30G 0 30G 0% /dev/shm
shmfs 30G 0 30G 0% /dev/shm
shmfs 30G 0 30G 0% /dev/shm
显然我的 lv_root 上没有太多空间了。我跑了
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root
6553600 143617 6409983 3% /
/dev/sda2 128016 22 127994 1% /boot
/dev/sda1 0 0 0 - /boot/efi
/dev/mapper/VolGroup-lv_home
101588992 44952 101544040 1% /home
shmfs 4085528 1 4085527 1% /dev/shm
shmfs 4085528 1 4085527 1% /dev/shm
shmfs 4085528 1 4085527 1% /dev/shm
这表明我还有很多可用空间(不确定我的理解是否正确)。
我尝试从中删除文件,/var/log
但由于这些文件的大小并不大,所以没有发生任何事情。我阅读lvextend
并认为我可以增加lv_root
VolGroup 的大小。
sudo lvs --segments
给我
LV VG Attr #Str Type SSize
lv_home VolGroup -wi-ao---- 1 linear 1.36t
lv_home VolGroup -wi-ao---- 1 linear 157.78g
lv_root VolGroup -wi-ao---- 1 linear 100.00g
lv_swap VolGroup -wi-ao---- 1 linear 20.00g
sudo vgdisplay VolGroup
给我
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.63 TiB
PE Size 4.00 MiB
Total PE 427545
Alloc PE / Size 427545 / 1.63 TiB
Free PE / Size 0 / 0
在知道我所有的分区共享相同的卷组名称VolGroup
并且 VG 大小为 1.63 TiB 后,我尝试将lv_root
空间增加 400Gib
sudo lvextend -L +400G /dev/mapper/VolGroup-lv_root
但收到此错误消息
Insufficient free space: 102400 extents needed, but only 0 available
40G需要不同范围的相同消息。
服务器的操作系统是 RHEL 6,我正在处理输入到 Oracle DB 的数据。
我会尽力回答你的问题,这是第一个:
所以你的 lv_root 卷上没有多少空间,挂载在 root 上:剩下 16MB,而 /home 挂载的卷(lv_home)上仍有近 TB 可用空间。带有开关“-i”的第二个命令实际上并不表示您剩余的空间,而是磁盘上剩余的inode数量,而它们的短缺也可能导致“设备上没有剩余空间消息”这是不是这里的问题。
下一期在这里:
VG 大小为 1.63TB,但是您不能将 400GB 分配给任何 LV,因为当前已分配所有这些空间,正如您的 vgdisplay 命令的最后一行返回的那样:
您可以在 lvs--segments 命令中查看此空间的实际重新分区:
现在要在这里解决您的问题,您可以(至少是我想到的解决方案,而不是全部):