本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
如果您的系统盘因写入不断增长的业务数据而导致压力激增,希望利用数据盘承接特定目录下的业务数据,缓解系统盘负担。您可参考本文进行操作。本文档将详细阐述如何将特定目录下的业务数据转移至数据盘,并利用数据盘承接后续写入该目录下的业务数据。
此文档涉及原有系统目录下数据的迁移,可能会影响您业务系统的正常运行。强烈建议您直接扩容系统盘以缓解系统盘压力,具体操作,请参见步骤一:扩容云盘容量。
前提条件
请确保系统盘使用率未达到100%。
重要为确保操作顺利进行,请登录实例并执行df -h命令,以确认根分区的使用率未达到100%。如根分区的使用率已达到100%,请参见解决Linux实例磁盘空间满问题以获取相应的解决方案。
请确保数据盘满足以下条件:
状态为使用中(In_use)。
已完成初始化操作,但未挂载文件系统。具体操作,您可查看初始化数据盘(Linux)。
本文档以在Alibaba Cloud Linux 3.2104下,将储存在/userdata下的业务数据转移到/dev/vdb1为例,您需要根据实际情况替换分区或设备名称及目标目录名称。
流程指引
操作步骤
步骤一:系统盘数据备份
为避免操作过程中误操作导致数据丢失,建议您提前为系统盘创建快照,做好数据备份。具体操作,请参见创建快照。
使用快照会产生计费,更多信息,请参见快照计费。
步骤二:复制业务数据至数据盘
运行以下命令新建文件目录/temporary,并将数据盘分区挂载至此目录下。请根据实际情况修改数据盘分区名称。
sudo mkdir /temporary sudo mount /dev/vdb1 /temporary
将目标目录/userdata下数据备份至数据盘挂载的/temporary中。请根据实际情况修改目标目录名称。
sudo cp -v /userdata/* /temporary
或者您也可以额外安装rsync工具,用于文件复制及进度查看。
sudo yum install -y rsync rsync --progress /userdata/* /temporary
步骤三:将数据盘挂载点设置为业务数据目录
步骤二完成复制后,执行以下指令,卸载/temporary目录节点。
sudo umount /temporary
执行以下命令将目标目录/userdata改名为/userdata_bak,用作短期备份,防止数据迁移出现异常情况。
sudo mv /userdata /userdata_bak
警告该步骤会改变原目录节点的名称,可能导致业务系统报错,且存在短期数据丢失的风险。请您谨慎评估业务风险,并在业务低谷期执行迁移操作。
执行以下命令将/temporary改名为目标目录/userdata。目标目录名称请根据实际情况进行修改。
sudo mv /temporary /userdata
将数据盘/dev/vdb1挂载至目标目录/userdata下。请根据实际情况修改数据盘分区名称和目标目录名称。
sudo mount /dev/vdb1 /userdata
输入df -Th命令查看数据盘分区是否已经挂载至目标系统目录下。如下图,表示/dev/vdb1已挂载至 /userdata。
步骤四:验证业务系统是否正常运行
建议立即重启业务系统,验证业务系统是否正常运行。
确认业务系统正常运行后,删除改名后的/userdata_bak文件夹。