Warning: preg_match_all(): Delimiter must not be alphanumeric or backslash in /data/wwwroot/www.wanvi.net/wp-content/themes/begin/functions.php on line 17
经常有新手发现自己的服务器硬盘满了,购买了新的硬盘又不知道如何使用。今天自然就来分享一下如何让硬盘使用起来这个基础操作。今天自然来分享硬盘的分区、挂载、数据的迁移和设置开机自动挂载。正确的姿势可以让你的服务器更加稳定的运行。
在服务器运维工作中我们经常会发现磁盘爆满的情况,磁盘爆满可能会造成服务异常,更有甚者是服务器崩溃。在这种情况下我们需要加入新的硬盘来扩展存储容量。常见方法有两种,一是挂载新的磁盘分区,二是lvm动态扩容。今天自然来讲一下第一种方案,如果你对第二种方案感兴趣,可以学习下面这篇文章:
miniProxy一款轻量级的PHP Web在线代理小程序
项目地址 安装要求 安装与使用 已知局限性 小结 目录 miniProxy是一款基于PHP开发的web网页代理 […]
硬盘分区
这里我们假设存放数据的目录/data所在的分区sda5马上就要爆满了,磁盘使用率高达99%。
我们购买了一块容量为20GB的新硬盘sdb,我们要使用它。按照windows上的操作方法,我们需要给它分区并格式化,分配盘符才能正确使用。centos7/redhat下我们也是同样的操作方式,只是我们的分配盘符变成了更加规范化的“挂载”。
centos7常用的分区工具有fdisk、gdisk、parted。其中fdisk转为mbr格式设计,gdisk转为gtp格式设计,parted是全兼容工具。fdisk也可以对gtp格式的硬盘进行操作,但是不推荐,因为它的gtp一直处于试验阶段。由于大部分人的服务器硬盘容量都没有超过2TB,目前为止fdisk还是主流的硬盘分区工具。
下面我们用fdisk在硬盘sdb上创建一个10GB的分区
格式化硬盘分区
通过lsblk命令我们可以看见已经在硬盘sdb中创建了第一个分区sdb1。下面我们需要对它进行格式化操作后才能挂载并使用。
分区硬盘我们需用用到mkfs命令,mkfs支持一下几种格式,centos6默认采用ext4文件系统,centos7默认采用xfs文件系统。
mkfs命令的使用方式有以下两种:1、mkfs 选项 参数 文件系统;2、mkfs.支持的文件系统
我们使用mkfs.xfs对分区sdb1进行格式化
分区挂载
我们还需要转移/data下的数据到新的分区,暂且不要将sdb1直接挂载到/data目录以免造成服务异常。
我们先新建一个/mnt2目录,将分区sdb1挂载到该目录后进行数据迁移。
我们通过df -h命令可以看到sdb1已经成功挂载到了/mnt2目录下。
数据迁移
数据迁移是一个非常重要的部分,请慎重。数据迁移前请停用设计到改目录的服务,例如我的网站数据都是放在/data目录下,那么我需要停用mysql/MariaDB、Nginx、PHP这几个关键服务。
将/data数据转移到/mnt2目录下,我们可以使用文件移动命令mv和文件复制命令cp。自然在这里推荐使用文件复制命令cp,以防突然断线造成的文件损坏。
必须添加-a参数确保文件属性不发生变化,避免由于文件属性变化造成的服务异常。后面的-v参数为可选项目,添加-v参数你可以看见复制的整个过程。
文件复制完成后,我们需要对文件进行校验,避免文件丢失。我们直接比对两个分区的文件大小是最直接的方式。使用du命令计算两个分区的文件大小,如果匹配无误说明文件已经被完整复制过来了。
数据完整迁移后我们可以完全删除/data下面的所有数据,以清理出更多的空间以便之后使用。
我们的服务认定的是/data目录,所以我们还需要将分区sdb1挂载到/data目录下。
完成挂载后,我们重启服务即可。
设置开机自动挂载
当前的挂载状态都是临时的,想要让服务器开机自动将分区sdb1自动挂载到/data目录,我们需要修改/etc/fstab文件,这里我们需要推荐使用唯一标识UUID进行挂载。
理由:在一定情况下,/dev/sdb1这个设备名是会发生变化的,一旦变化就会造成服务错误甚至崩溃。而系统唯一标识UUID是不会发生变化的。
获取/dev/sdb1的UUID
使用命令vim /etc/fstab修改开机挂载列表:
最后按esc键,输入:wq保存并退出即可。
小结
以上的内容对于个人站长而言,已经完全够用了。网站服务器的基础硬盘挂载你已经完全掌握了,再也不需要担心不会手动挂载硬盘了。这里只是基础的介绍,如果你想了解更加高级的内容,推荐学习《鸟哥的Linux私房菜》一书。