当前位置: 首页 > article >正文

阿里云centos7.9服务器磁盘挂载,切换服务路径

项目背景

1、项目使用的服务器为阿里云centos7.9,默认的磁盘为vda,文件系统挂载在这个磁盘上,项目上使用的文件夹为/home/hnst/uploadPath

2、vda使用率已达到91%

3、现购置一块新的磁盘为vdb,大小为2T

目的

切换服务所使用的路径到新挂载的磁盘上去,将原有数据迁移,服务正常运行

解决办法

一、磁盘挂载

1、首先登录到您的CentOS 7.9服务器,然后运行以下命令来检查新磁盘是否已被识别:

lsblk

能看到类似以下的输出,其中包含/dev/vdb:

2、创建分区
由于我们打算将整个磁盘用作单一存储空间,这里我们将直接格式化整个磁盘而不进行分区:

sudo mkfs.ext4 /dev/vdb

3、创建挂载点
创建一个新的挂载点来挂载新磁盘:

sudo mkdir -p /mnt/uploadPath

4、挂载新磁盘
将新磁盘挂载到刚刚创建的挂载点:

sudo mount /dev/vdb /mnt/hnst/uploadPath

5. 更新/etc/fstab
为了确保系统重启后新磁盘能自动挂载,需要更新/etc/fstab文件:

sudo blkid /dev/vdb

记下/dev/vdb的UUID,然后编辑/etc/fstab:

sudo vi /etc/fstab

添加如下行:

UUID=4545454545487878845 /mnt/hnst/uploadPath ext4 defaults 0 0

保存并退出编辑器,然后测试挂载配置:

sudo mount -a

二、数据迁移


1、 修改文件存储位置


编辑项目中application.yml文件的相关配置项,将文件存储路径从/home/hnst/uploadPath更改为/mnt/hnst/uploadPath。

2、迁移vda中的数据到vdb

2.1、备份重要数据

在开始迁移之前,确保对重要数据进行备份:

sudo tar -czvf /backup/hnst_uploadPath_$(date +%Y%m%d).tar.gz /home/hnst/uploadPath
2.2、使用rsync迁移数据

使用rsync迁移数据,确保数据一致性(包含文件权限迁移):

sudo rsync -avz --progress /home/hnst/uploadPath/ /mnt/hnst/uploadPath/
2.3、验证数据

检查新磁盘上的数据是否与原磁盘一致,可以随机抽查一些文件进行比对。

2.4、项目暂时访问vda上的图片资源的影响(可忽略)


在迁移过程中,为了确保服务不间断,可以采取以下策略:

软链接:创建一个软链接指向新的存储位置,这样即使配置文件未更改,也可以通过软链接访问新磁盘上的数据。

sudo ln -s /mnt/uploadPath /home/hnst/uploadPath_new

逐步切换:在确保新磁盘上的数据无误后,逐步将项目配置中的存储路径切换到新的位置。可以先在一个非生产环境进行测试,确保一切正常后再应用到生产环境。
双写机制(可选):在迁移初期,可以实现一个临时的双写机制,即同时向旧磁盘和新磁盘写入数据,确保新旧数据同步。当确认一切正常后,再关闭对旧磁盘的写入。
 

三、服务切换


停止服务:在最终切换前,停止相关服务,确保没有新的数据写入旧磁盘。
重启服务:重启服务以应用新的配置。
通过以上步骤,您可以安全地将数据从旧磁盘迁移到新磁盘,同时确保项目在迁移过程中正常运行。


http://www.kler.cn/a/389156.html

相关文章:

  • 如何用C#和Aspose.PDF实现PDF转Word工具
  • 随手记:简单实现纯前端文件导出(XLSX)
  • 智能电视/盒子的应用管理——通过ADB工具优化体验
  • 类别变量分析——卡方独立性检验卡方拟合优度检验
  • jmeter常用配置元件介绍总结之定时器
  • 基于迭代重加权最小二乘法的算法及例程
  • flutter 发版的时候设置版本号
  • Linux -- 进程初印象
  • iOS 18.2 六大新功能外媒實測|ChatGPT進化版SIRI、自製Genmoji
  • 紫光展锐携手上赞随身Wi-Fi,让5G触手可及
  • 4.1 WINDOWS XP,ReactOS对象与对象目录----1
  • Vue3-06_路由
  • Java 上机实践2(基础数据类型与数组)
  • 【网络安全 | 漏洞挖掘】商品逻辑漏洞之生成商品折扣码
  • 鸿蒙开发:切换至基于rcp的网络请求
  • Linux开发讲课48--- Linux 文件系统概览
  • 封装一个web Worker 处理方法实现多线程
  • [python3] tornado 使用swagger编写接口文档
  • FastHtml llmctx介绍
  • Spring Boot与工程认证:计算机课程管理的新范式
  • 塔吉克斯坦媒体发稿:伊斯梅尔快讯的海外影响力-大舍传媒
  • javascript实现国密sm4算法(支持微信小程序)
  • SVN 提交操作
  • Flutter 正在切换成 Monorepo 和支持 workspaces
  • Jasypt 实现 yml 配置加密
  • GPU集群上分布式训练大模型