我对处理文件系统和磁盘完全陌生。我可以通过 ssh 访问一台物理机器,我相信该机器有两个物理磁盘。当我这样做时,fdisk -l
我得到:
root@206-166-40-41-os-compute:/home/prjdefault# fdisk -l
Disk /dev/sda: 73.4 GB, 73372631040 bytes
255 heads, 63 sectors/track, 8920 cylinders, total 143305920 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 1048576 bytes
I/O size (minimum/optimal): 1048576 bytes / 1048576 bytes
Alignment offset: 405504 bytes
Disk identifier: 0x0001d370
Device Boot Start End Blocks Id System
/dev/sda1 2048 143296511 71647232 83 Linux
Partition 1 does not start on physical sector boundary.
Disk /dev/sdb: 73.4 GB, 73372631040 bytes
98 heads, 9 sectors/track, 162478 cylinders, total 143305920 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 1048576 bytes
I/O size (minimum/optimal): 1048576 bytes / 1048576 bytes
Alignment offset: 12288 bytes
Disk identifier: 0x1f7aafb8
Device Boot Start End Blocks Id System
/dev/sdb1 24 143305919 71652948 8e Linux LVM
Disk /dev/mapper/vgroot-lvroot: 15.0 GB, 14998831104 bytes
255 heads, 63 sectors/track, 1823 cylinders, total 29294592 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 1048576 bytes
I/O size (minimum/optimal): 1048576 bytes / 1048576 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vgroot-lvroot doesn't contain a valid partition table
并df -h
给我:
root@206-166-40-41-os-compute:/home/prjdefault# df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 4.0K 16G 1% /dev
tmpfs 3.2G 556K 3.2G 1% /run
/dev/dm-0 14G 3.9G 9.1G 31% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 16G 0 16G 0% /run/shm
none 100M 0 100M 0% /run/user
和pvdisplay -v
:
root@206-166-40-41-os-compute:/home/prjdefault# pvdisplay -v
Scanning for physical volume names
--- Physical volume ---
PV Name /dev/sda1
VG Name vgroot
PV Size 68.33 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 17491
Free PE 13915
Allocated PE 3576
PV UUID oxpDr3-ZVTm-IPd9-Lgfq-wrfA-Z64o-zRS25Z
--- Physical volume ---
PV Name /dev/sdb1
VG Name vgroot
PV Size 68.33 GiB / not usable 1.58 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 17493
Free PE 17493
Allocated PE 0
PV UUID psfXAo-HhvA-fl2S-RwA6-IuBX-pmRr-flej70
从输出可以看出,df
我几乎已经用完了所有磁盘空间。我需要使用这台机器作为数据库,我安装了数据库,但在加载数据库时遇到空间不足错误,所以我必须删除所有内容,现在我试图利用 LVM 卷中的所有磁盘空间,但我无法计算知道如何去做。我尝试跟随本教程但我不知道在哪里安装新分区,以便它可以为我的主目录添加空间?
我的问题可能不清楚,因为我不熟悉 Linux 中的文件系统术语。
编辑:还添加pvdisplay -m
以防万一,以及vgs
, lvs
:
root@206-166-40-41-os-compute:/home/prjdefault# pvdisplay -m
--- Physical volume ---
PV Name /dev/sda1
VG Name vgroot
PV Size 68.33 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 17491
Free PE 13915
Allocated PE 3576
PV UUID oxpDr3-ZVTm-IPd9-Lgfq-wrfA-Z64o-zRS25Z
--- Physical Segments ---
Physical extent 0 to 3575:
Logical volume /dev/vgroot/lvroot
Logical extents 0 to 3575
Physical extent 3576 to 17490:
FREE
--- Physical volume ---
PV Name /dev/sdb1
VG Name vgroot
PV Size 68.33 GiB / not usable 1.58 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 17493
Free PE 17493
Allocated PE 0
PV UUID psfXAo-HhvA-fl2S-RwA6-IuBX-pmRr-flej70
--- Physical Segments ---
Physical extent 0 to 17492:
FREE
prjdefault@206-166-40-41-os-compute:~$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vgroot 2 1 0 wz--n- 136.66g 122.69g
prjdefault@206-166-40-41-os-compute:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lvroot vgroot -wi-ao--- 13.97g
答案1
看起来你的机器上配置了 LVM,并且有可用空间,在这种情况下这是一件好事。您显示的输出中没有一个命令告诉我们您正在使用什么文件系统,因此我们不知道扩展您的文件系统有多容易,因此我的建议是创建一个新的逻辑卷(使用文件系统当然在它上面)为你想要的数据库数据。
(您可以考虑创建一个新的卷组,但我没有看到您的设置有任何优势)
你创建一个新卷,lvcreate --size <N>G -n db_data vg_root
其中<N>
包含你想要的 GB 数(你有大约 100G 的可用空间,但我怀疑你的数据库会那么大,并且你稍后可能需要空间用于其他事情,以及性能 - 这可能很有趣数据库 - 保持在 68 以下,这样它就可以全部位于一个磁盘上,为此只需添加/dev/sdb1
到命令中即可。
mkfs.ext4 /dev/mapper/vg_root
您可以使用例如(如果您想要 ext4,还有很多其他选项)在新逻辑卷上创建文件系统。
在哪里安装它取决于你想使用什么RDBMS,对于postgresql(我记得答案的唯一一个)它应该是/var/lib/postgresql/<version>/main/base
(main
可能是集群名称,但如果你有更多或不同的名称,你就会知道) ,并让你的新文件系统在每次启动时安装在那里,添加如下内容:
/dev/mapper/vg_root/db_data /<mountpoint> ext4 defaults 0 0
到/etc/fstab
。如果您使用 ext4 以外的其他文件作为 fs,请替换它,并添加空格,以便它与该文件中已有的内容很好地对齐。
答案2
由于lvs
只显示一个逻辑卷:
prjdefault@206-166-40-41-os-compute:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lvroot vgroot -wi-ao--- 13.97g
我决定尝试扩展它:
sudo lvextend -L+100G /dev/vgroot/lvroot
然后重启一下,就成功了:
prjdefault@206-166-40-41-os-compute:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 4.0K 16G 1% /dev
tmpfs 3.2G 556K 3.2G 1% /run
/dev/dm-0 113G 4.0G 104G 4% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 4.0K 5.0M 1% /run/lock
none 16G 0 16G 0% /run/shm
none 100M 0 100M 0% /run/user
prjdefault@206-166-40-41-os-compute:~$ sudo vgs
[sudo] password for prjdefault:
VG #PV #LV #SN Attr VSize VFree
vgroot 2 1 0 wz--n- 136.66g 22.69g
prjdefault@206-166-40-41-os-compute:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lvroot vgroot -wi-ao--- 113.97g