我们在使用VPS主机时经常会遇到增加硬盘容量的情况,像阿里云、腾讯云、Linode这样的都是可以直接追加硬盘的,如果用的是SolusVM VPS主机则可以直接在SolusVM中增加硬盘容量。但是硬盘容量扩大后,还需要我们手动挂载硬盘分区。
给Linux VPS主机硬盘扩容一般来说有两种方式,一种是常用的,即将硬盘分区挂载到某一个目录下;另一种则是直接在原来的硬盘上分区上扩容。第一种扩容硬盘的方式操作起来简单,但是后期如果想要再增加硬盘的话面临着重新增加分区的麻烦。
第二种方式比较适合经常扩容硬盘的用户,可以实现动态扩容并且不影响原有的目录结构。本篇文章就来分享一下利用fdisk命令给Linux VPS主机硬盘扩容方法,fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,操作起来有点麻烦。
更多的关于Linux VPS主机操作教程这里还有:
PS:2019年3月1日更新,如果你的硬盘存储总是处在变动当中,可以尝试动态扩容,“一劳永逸”地解决存储容量不足的问题:Linux独立服务器和VPS主机硬盘动态扩容-LVM逻辑卷扩大缩小方法。
fdisk命令语法:
fdisk(选项)(参数)
选项:
-b<分区大小>:指定每个分区的大小; -l:列出指定的外围设备的分区表状况; -s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块; -u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址; -v:显示版本信息。
参数:
设备文件:指定要进行分区或者显示分区的硬盘设备文件。
示例:
首先选择要进行操作的磁盘:
[root@localhost ~]# fdisk /dev/sdb
输入m
列出可以执行的命令:
command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)
命令说明如下:
a 切换可引导标志
b 编辑bsd disklabel
c 切换dos兼容性标志
d 删除分区
l 列出已知的分区类型
m 打印此菜单
n 添加一个新分区
o 创建一个新的空DOS分区表
p 打印分区表
q 退出而不保存更改
s 创建一个新的空的Sun磁盘标签
t 更改分区的系统ID
u 改变显示/输入单位
v 验证分区表
w 将表写入磁盘并退出
x 额外功能(专业)
以下操作就是使用fdisk命令进行磁盘:/dev/vda→查看分区→新建分区→设定分区为3(原来已经有了1和2了)→查看分区。(点击放大)
命令一:格式化分区
mkfs.ext4 /dev/vda3 //格式化分区(也可先选ext3)
命令二:开机自动挂载
vim /etc/fstab
加入:
/dev/sdb1(磁盘分区) /data1(挂载目录-需要提前创建好) ext4(文件格式,也可写ext3)defaults 0 0
你也可以照着你来的文件的格式来写,这样就不会有错了。如下图:
命令三:挂载所有目录
mount -a(注意是英文的-)
挂载成功。
上面我们通过硬盘挂载,成功地将新分区挂载到了服务器的某一个目录下,这样存在一个问题就是后期如果还要增大硬盘的话,又得挂载另一个目录,操作简单,但实用性不强。
按照上面给硬盘分区做好后,输入命令t,再输入:8e,这时将分区格式转化为LVM了。如下图:
保存分区后重启好了VPS后,创建逻辑卷和逻辑卷组并激活,命令如下:
pvcreate /dev/vda3 //创建物理卷
vgcreate qyfoutt /dev/vda3 //创建逻辑卷组
vgchange -ay qyfoutt //激活逻辑卷组
vgdisplay qyfoutt | grep "Total PE" //查看该卷组所有的PE
lvcreate -l 17919 -n qimm qyfoutt //创建逻辑卷
mkfs.ext4 /dev/qyfoutt/qimm //格式化逻辑卷
这里我创建一个名为qyfoutt的逻辑卷组,共70GB可供分配。
然后创建了一个名为qimm的逻辑卷,将70GB都赋予给它。现在我们就可以像上面那样编辑/etc/fstab 文件,新增加的/dev/qyfoutt/qimm 分区挂载到某一个目录下了。格式如下:
/dev/qyfoutt/qimm /ttfou ext4 defaults 0 0
动态扩容。假如又增加了硬盘,这里我们就可以将新的硬盘空间增加在原来的硬盘上了。按照上面的方法新建分区(这里我新建分区是vda4)并设置为LVM格式。
使用以下方法扩容:
pvcreate /dev/vda4 //创建物理卷
vgextend qyfoutt /dev/vda4 //将新硬盘加入卷组
vgdisplay qyfoutt | grep "Total PE" //查看所有PE
lvresize -l 30718 /dev/qyfoutt/qimm //重新规定大小
resize2fs /dev/qyfoutt/qimm //扩容
重启后我们可以看到硬盘在原来的基础上扩容成功了。
上面我们用到的方法是将分区挂载在一个目录下,如果想要将一个分区挂载多个目录下,可以使用bind mount命令。
mount /dev/vda4 /data/wwwroot
mount --bind /data/wwwroot /home
上述命令我先将分区vda4挂载在/data/wwwroot目录下,然后bind mount到home目录下,这样home目录和wwwroot目录都使用了vda4分区了。如果要取消挂载就可以使用以下命令:
umount /home
umount /dev/vda3
如果你使用命令dh和fdisk查看硬盘显示不一样,可能是分区了但是没有将容量扩容到硬盘上,请执行resize2fs 扩容命令。如果你发现dh和fdisk查看分区和硬盘容量一致,但是还在大量空闲磁盘,那应该是没有分区。
请先把空闲的硬盘进行分区,如果原来已经存在LVM格式的分区,你可以将新的分区直接扩容在LVM格式的硬盘上。硬盘操作前请做数据备份,稍有不慎就会丢失原有的数据,“删库跑路”都是这么搞出来 的。
文章出自:挖站否 https://wzfou.com/linux-vps-fdisk/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: %s = human-readable time difference 下午9:35
查看评论
硬盘几乎用不完。
现在wzfou用的是哪家的vps呀,一直感觉vultr太慢
用的是瓦工的CN2的。
暂时用不到[挖鼻屎]
請教一下站長, SWAP 的 File 和 Partition。哪一個類型較好?我有多個網站是使用 WordPress 的,但一用到後台的視覺化框架便很慢慢慢。謝謝!
如果很慢的话,可以尝试开启缓存,例如Nginx缓存:https://wzfou.com/nginx-fastcgi-cache/
观察一下很慢的时候主机的内存是否用尽。
謝謝站長回覆,我是使用 VestaCP 平台,我有看過 Nginx ngx_cache_purge 但不懂安裝,所以是使用 VestaCP 的 Nginx 做 fastcgi cache
哦,如果是用的VestaCP,那需要自己编译才行。有些麻烦了。另外,VestaCP有不少的漏洞。