centos系统服务器,磁盘不够,怎么办?
在我们平常经常接触到的centos系统的服务器,在用一段时间后,发现服务器的磁盘不够了,但是服务器上的服务这些需要继续使用更大的空间,所以这个时候,挂载新的磁盘块,就成了我们的首选,然后我们的资源有限,只有一块移动硬盘,多台服务都需要同时扩容,这可就有点麻烦了,于是就有了nfs共享挂载磁盘,这种解决方案
对于挂载磁盘,还是很常规的操作方式,很多博客文章都有介绍,我就按最常规的方式介绍一下,我们磁盘的挂载过程,以及我自己实操的一些步骤
1. 查看服务器上有那些磁盘块
首先第一步是查看服务器上连接着那些磁盘:fdisk -l 检索出系统有哪些磁盘块,默认以:磁盘 /dev/sdb 开头的代表一个磁盘块, /dev/vdb 也是一个没有挂载的磁盘块
2.对磁盘进行分区
对磁盘进行分区:fdisk /dev/vdb -可以忽略的步骤,如果需要把新挂载的磁盘进行分区,就进行操作,具体操作步骤我在此不赘述了,因为我本次的分享不包含磁盘分区,分区是一个很复杂的过程
3. 对于没有挂载的磁盘进行格式化
我选择格式化的分区格式为常规格式ext4,使用命令mkfs进行格式化磁盘
mkfs -t ext4 /dev/vdb
4. 将磁盘挂载到目录下
首先创建一个目录/data1,然后使用命令mount把磁盘/dev/vdb挂载到目录/data1下,
mkdir /data1
mount /dev/vdb/ /data1
5 查看磁盘是否挂载成功
使用命令查看磁盘是否挂载成功,使用的命令如下:
df -h|grep dev
得到的结果如下图:
6. 解决磁盘挂载后,服务器重启后失效的问题
使用上面的命令进行磁盘挂载后,重启服务器后,挂载就不生效了,不想再重复挂载的进行命令输入,需要修改一下一个文件,然后进行保存,首先需要查看磁盘分区UUID
blkid /dev/vdb1
执行完之后会出现下边代码:
/dev/vdb1: UUID=“0b3040e2-1367-4abb-841d-ddb0b92693df” TYPE=“ext4”
然后编辑文件
vim /etc/fstab
加一行如下的内容格式
UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /data ext4 defaults 0 2
UUID=885c2092-7170-435f-8fc2-4c6d2d3bf362 /data1 ext4 defaults 0 2
最后保存文件,服务器重启后,就不需要再去挂载磁盘数据
NFS磁盘共享
最后对于多个服务器需要共享磁盘文件的情况,通过nfs进行磁盘共享
1、第一步是服务器安装nfs-utils,进行文件的查询
sudo yum install nfs-utils
该命令将会安装 NFS 服务器所需的软件包。安装完成后,你需要启动 NFS 服务并设置开机自启动,可以使用以下命令:
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
2、上述命令将会启动NFS服务,并设置开机自启动。接下来,你还需要在/etc/exportes文件中配NFS,以便客户端能够访问到该目录。常规的格式如下,需要共享的目录是/data1
添加如下内容行
/data1 *(rw,sync,no_subtree_check,no_root_squash)
3、配置好以后需要重启nfs-server服务:systemctl restart nfs-server
4、最后就可以在其他服务器上通过共享的方式挂载被分享服务的目录了
比如在IP为10.135.8.161服务器上执行:
mount -t nfs 10.135.8.163:/data1 /data1
这样服务器161上就可以正常访问163服务器的/data1文件夹的磁盘的空间了
5、最后,我们可以通过软连接的的方式,把某些服务用到的磁盘空间挂载到/data1下了,以下操作以seaweedfs应用为例
- 停seaweedfs_volume服务,docker stop seaweedf_volume
- 把seaweedfs_volume的数据文件移动到目录:/data1/swdfs161/data目录下,然后删除seaweedfs_volume服务目录下的data文件夹
- 创建seaweedfs_volume文件的数据目录,链接到刚才拷贝的目录下:
ln -s /data1/swdfs161/data /data/cwos/seaweedfs_01-seaweedfs_volume