我有一个处理数据的服务器,它开始给我这个错误:
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
并认为我可以增加 VolGroup 的大小lv_root
。
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的数据。
答案1
我会尽力回答你的问题,这是第一个:
显然我的 lv_root 上没有太多空间了。我跑了
[...]
这表明我还有很多可用空间(不确定我的理解是否正确)。
因此,安装在 root 上的 lv_root 卷上没有太多剩余空间:还剩 16MB,而 /home 安装卷 (lv_home) 上仍然有近 1 TB 的可用空间。带有开关“-i”的第二个命令实际上并不表示您剩余的空间,而是表示剩余空间的数量索引节点磁盘上剩余的空间,虽然它们的短缺也可能导致“设备上没有空间”消息,但这不是这里的问题。
下一期在这里:
在知道我的所有分区共享相同的卷组名称、VolGroup 和 VG 大小为 1.63 TiB 后,我尝试将 lv_root 空间增加 400Gib
VG 大小为 1.63TB,但是您不能将 400GB 分配给任何 LV,因为所有这些空间当前都已分配,如 vgdisplay 命令的最后一行返回的那样:
**免费 PE / 尺寸 0 / 0 **
您可以在 lvs--segments 命令中看到该空间的实际重新分区:
- 1.36TB 分配给您的 lv_home
- 157.78GB也分配给你的lv_home
- 100GB 分配给你的 lv_root,几乎耗尽
- 分配给您的交换区 20GB
现在要解决您的问题,您可以(至少是我想到的解决方案,并不意味着是所有解决方案):
- 通过删除您已经尝试过的文件来释放 / mount 中的一些空间
- 通过将 / 安装移动到 /home 来释放一些空间
- 将新磁盘添加到您的计算机,然后在其上创建新的 PV,在调整分区大小之前扩展 VG,然后扩展 LV(注意:编辑以更新有关 ignacio 的评论)
- 假设它是一个虚拟机,您可以:扩展磁盘,然后扩展所有底层的 PV、VG、LV 等...