ECS 中docker 内FTP上传文件迁移到数据盘

由于之前FTP文件上传到了60G的系统文件夹内 空间占满后无法继续上传,故迁移到数据盘上。当然,ECS 系统盘 可以扩容,但必须关闭实例,扩容后根据快照恢复系统,此处仅分享不关闭实例的情况下,进行数据迁移操作。

迁移思路:

1,增加数据盘 vdb1 ,挂载到系统vda1 /mnt/data0 上,然后将系统的FTP上传的大文件夹(不要改名称 eg :/usr/local/xx/app)移到 挂载目录下/mnt/data0  ,同时授权改文件夹,

2,将迁移后的文件夹软连接(ln -s  源文件  目标路径)到 原来上传的路径下面 名称不变,以便FTP、nginx 等docker配置不变,随后修改访问配置 nginx 允许访问软连接文件 ,注意 docker容器中应用的配置不可修改,拷贝到docker 外部 进行修改,然后映射使用

3,重启 docker 中的相关应用 即可

操作:

1,df -h 查看系统磁盘使用情况及数据盘是否挂载

以上数据盘是已挂载好的,而且是挂载在/mnt/data0上的,如果没有则未挂载(是否有数据盘 fdisk -l  或在阿里云后台查看云盘数量),若是未分区的数据盘 则需要分区,格式化,挂载操作:

查看 数据盘:fdisk -l 

查看 磁盘格式:df -T  (type:ext3/ext4/tmpfs/ntfs/...等等)

2分区:若fdisk -l 查看到数据盘为/dev/vdb1 那么分区的磁盘为vdb

命令:fdisk vdb

创建新分区 依次输入 n   p   1   1  wq  具体步骤可点击参考

格式化分区: mkfs.ext4 /dev/vdb1

可能出现:/dev/sdc1 is apparently in use by the system; will not make a filesystem here!

对网上的其他进行尝试:

# dmsetup status
No devices found

解决办法:

 # fuser -v /dev/sdc1

USER        PID ACCESS COMMAND
/dev/sdc1:           root      30049 F.... mkfs.ext3
重新执行mkfs -t ext3 /dev/sdc1。

OK,搞定。

创建挂载目录: mkdir /mnt/data0

3 挂载分区: mount /dev/vdb1  /mnt/data0
然后挂载好,查看挂载情:df -h

最后设置系统自动加载

[root@xxxff xx]# cat /etc/fstab  

用vi 命令添加 mount  /dev/vdb1 /mnt/data0 ext4 defaults 1 2 

或者命令: echo '/dev/vdb1 /mnt/data0 ext4 defaults 0 0' >> /etc/fstab

迁移文件注意文件名不要改变:mv /usr/local/xx/app  /mnt/data0

另外 卸载挂载命令是:umount /dev/vdb1 

给文件授权 chmod 777 /mnt/data0

4 软连接 到原文件目录上: ln -s /mnt/data0/app   /usr/local/xx 

查看 ls -ll /user/local/xx

红圈部分如果为红色闪烁则有问的,需要删除软连接 出现操作 删除:

rm   /usr/local/xx/app

#只是少了一个“ / ” 删除的 就是链接文件, 也就是在文件的最后不要加上"/"

特别注意:

在删除文件时要小心 如果不小心会把原始文件删掉

在删除软链接文件时,小心使用 Tab 建,一定不要在目录后面加斜扛"/"

软连接后查看文件夹下的文件: ls -l |more  回车可查看更多类似分页,退出 ctrl+c

5 修改docker 引用的外部配置 并重启 应用 

查看正在使用的docker引用:docker ps  (查看所有应用 则docker ps -a)

此处 FTP 是用  进行安装的,因docker 容器中的应用配置不可编辑 要映射外部配置 参考-Docker部署nginx并修改配置文件

此服务器中 均位于:/usr/local/xx 下

容器应用的配置映射都在conf 里面 docker-compose.yml 为FTP安装yml,此处 FTP配置无需变动,仅(点击查看参考)重启docker应用FTP 即可:"docker start 59ec 启动容器 "

docker restart -t=5 c50c9a3c3128  (说明:restart 重启,-t=5 表示5s后执行  c50c9a3c3128  为容器FTP应用ID)

Nginx支持LInux的软链接或硬链接  修改 conf/nginx.conf 

在nginx.conf中 http模块中 disable_symlinks 改成off。启用链接符

1

2

3

http {

    disable_symlinks off;

}

重启 nginx 应用即可。

若为tomcat 则 参考linux下通过软连接实现访问项目路径外面的资源

到此,基本处理完毕!

发布了45 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/cfm_gavin/article/details/84299591
ECS