Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案

一、问题溯源

这两天跑程序,需要在linux centos 的conda环境中安装包,死活也安装不上,总是提示,No space left on device,
在这里插入图片描述
于是输入如下命令查看磁盘占用情况

df-h

Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第1张图片
惊讶地发现,磁盘的逻辑分区空间已满,于是找同学给账户分配了160G硬盘,但是问题依旧没有解决,输入df-h之后结果仍然如上图所示。于是输入

fdisk -l

命令查询磁盘容量情况如下图:
Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第2张图片
担心上面的图失效,所以在下面把文字也挂上

$ sudo fdisk -l
Disk /dev/sda: 160 GiB, 171798691840 bytes, 335544320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8e8509b6

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 33554431 31455232  15G 8e Linux LVM

Disk /dev/mapper/cs-root: 13.4 GiB, 14382268416 bytes, 28090368 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/cs-swap: 1.6 GiB, 1719664640 bytes, 3358720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

终于破案了,分配的160G空间没有进行分区,并扩充到逻辑盘中,于是乎我开始进入到了扩展逻辑的过程中,过程中遇到了好几个不懂的地方,整个过程耗费2小时,于是决定记录下来,帮助以后遇到相同问题的人可以快速解决这个问题。
(注意:磁盘空间不足的问题,有时候可能是磁盘缓存文件过多等问题导致的,在没有直接的硬件扩容支持的情况下可以考虑清除日志文件等方法,这里不再赘述)

二、解决方案:Linux 逻辑磁盘扩容

2.0初次尝试直接给分区扩容

首先,直接给分区扩容的命令如下:

lvextend -L +80G /dev/vg/lv

其中,vg代表卷组; volume group
需要具体到你的电脑用,用vgdisplay命令可以查看

lv代表逻辑卷:logical volume
需要具体到你的电脑用,用lvdisplay命令可以查看

pv代表物理卷:physical volume
需要具体到你的电脑用,用pvdisplay命令可以查看

/dev 代表分区路径,一般都是/dev

但是出现了问题,报错内容如下:

$ sudo lvextend -L +80G /dev/mapper/cs-root
>> Insufficient free space: 20480 extents needed, but only 0 available

所剩空间不足。
分析原因如下:划定vg时已经固定了容量,lv容量从vg扩充,第一次已经将vg的空间全部划给lv,所以无法扩充。需扩充vg,但扩充vg需先扩pv,扩pv需新建分区。

现在我们有了160没分区的盘,就用着剩下的160G来分区做物理盘(pv),并用它来进行逻辑分区(lv)扩容。

2.1第一步、格式化(或者说是创建)物理分区

使用fdisk /dev/sda命令来对磁盘进行分区,参数command选择n。
Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第3张图片

$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (33554432-335544319, default 33554432): 
Last sector, +sectors or +size{K,M,G,T,P} (33554432-335544319, default 335544319): wq
Last sector, +sectors or +size{K,M,G,T,P} (33554432-335544319, default 335544319): wq
Last sector, +sectors or +size{K,M,G,T,P} (33554432-335544319, default 335544319): 

Created a new partition 3 of type 'Linux' and of size 144 GiB.

Command (m for help): wq
The partition table has been altered.
Syncing disks.

输入fdisk -l查看分区结果如下:多了一个sda3
Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第4张图片

2.2第二步:将分出来的sda3分区创建为物理卷

pvcreate  /dev/sda3  

(可以先执行pvdisplay ,查看一下sda1的路径在哪,然后在进行操作,一般都是在/dev下)
在这里插入图片描述

2.3第三步:为卷组vg添加新的物理卷sda3来增大容量

vgextend  vg  /dev/sda3

(vgdisplay 查看vg的名称和路径)
Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第5张图片
因为我的VG的名字是cs,所以命令要修改为

vgextend  cs  /dev/sda3

在这里插入图片描述

2.4第四步、扩展逻辑卷的大小

lvextend -L +80G /dev/vg/lv

lvdisplay 查看lv 逻辑卷的路径和名称
Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第6张图片
根据我自己的vg和lv的名称,修改命令代码如下

lvextend -L +80G /dev/cs/root

在这里插入图片描述

2.5第五步、重载逻辑卷,使分配结果生效

resize2fs  /dev/vg/lv

运行后发现出错,同时df -h查看磁盘逻辑卷利用率并没有变化
Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第7张图片
检查 /dev/cs/root 文件系统,发现是xfs,使用命令如下;

 mount |grep root
 >>/dev/mapper/cs-root on / type xfs 

xfs的文件系统重新定义大小用如下命令

xfs_growfs /dev/mapper/cs-root 

再重新查看磁盘利用率,发现,磁盘分配成功啦!!!!

Linux : No space left on device 远程linux服务器无法pip install package等问题溯源与解决方案_第8张图片

参考资料

参考资料比较杂,每一篇都用到了一部分
https://blog.csdn.net/zhou562334410/article/details/97368505
https://www.cnblogs.com/happy-king/p/9070496.html
https://www.cnblogs.com/wangmo/p/8727162.html

你可能感兴趣的:(操作系统,ssh,linux,ubuntu)