一次完美的逃离公有云操作:把挂载300G数据盘的阿里云主机迁移到本地

在主机还有 1 天到期之前,尝试下云就成功了,节省几千块。从阿里云下载的虚拟机文件在本地用 qemu 运行没有任何问题,因为备份的磁盘文件单个接近 200GB,我还担心网络问题以及操作复杂会比较耗时间,于是先把主机降到了最低配置准备再续一个月,没想到迁移过程很丝滑。这次迁移主机的系统盘和数据盘是通过下载从阿里云的磁盘快照构建镜像来恢复的,而不是通过备份数据的方式。 通过直接恢复虚拟机磁盘这种方式来迁移云主机,相较于通过 rsync 备份数据,要方便得多。 以下是我的操作过程。 阿里云导出主机镜像的文档写得还是不错的,生成和导出磁盘镜像我都是看阿里云文档来操作。第一步是打开阿里云控制台进入镜像页面,为自己的云主机创建一个镜像。我的这台主机每天都自动生成快照,并且在创建镜像之前,我手动也创建了一个永久保存的快照,我用这个永久快照来构建镜像的。 接下来点击「导出镜像」,阿里云后台会弹出提示窗口,根据提示配置好 oss Bucket,然后耐心等待,最后在会在 oss Bucket 看到两个文件,一个是系统盘,另外一个数据盘。 从 oss Bucket 下载文件到外网的流量是收费,我第一次直接用 http 链接下载,系统盘可以下载下来,但是数据盘下载失败了,浪费了不少的流量(钱),后来尝试用 阿里云的 ossutil 命令来下载,一次就成功了,把着两个文件下载到本地之后,接下来在本地使用 qemu 就可以把虚拟机跑起来 我从阿里云导出的 raw 格式的镜像, qemu 可以直接使用,如果打算用 virtualbox 来运行,也可以尝试用 qumu-img 转为 virtualbox 支持的磁盘格式。我这里直接解压系统盘和数据盘文件之后,执行一下命令来构建虚拟机: # 使用系统盘创建虚拟机 virt-install \ --name aliyun-ci \ --osinfo centos7 \ --ram 8192 \ --vcpus 4 \ --network network=default \ --disk /var/lib/libvirt/images/aliyun-ci.raw \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole --autostart \ --import # 挂载数据盘 virsh attach-disk aliyun-ci /mnt/nas/aliyun/ci/data....

December 4, 2023 · 1 min

使用 rcode+vscode+docker 快速搭建隔离的 cuda 开发环境

昨天组装了一台GPU 开发机,我使用 rcode+vscode+docker 可以快速搭建出隔离的cuda开发环境,我感觉非常的方便。特别是 rcode 这个命令在使用 docker 构建 cuda 开发环境时非常有用。下面以搭建 faster-whisper 开发环境为例: faster-whisper 的项目说明里提到,NVIDIA 官方 Docker 镜像 nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04 已经包括了开发需要的库 cuBLAS for CUDA 11 和 cuDNN 8 for CUDA 11。执行以下命令下载并启动这个镜像,并且在启动时,安装好需要的 python 库 和 openssh-server 服务 执行以下命令查找到刚刚启动的容器的名称 sudo docker ps 例如我的容器名称是 admiring_kapitsa,使用以下命令进入容器的 console sudo docker exec -it admiring_kapitsa /bin/bash 进入 console 之后,进入 /root 目录,创建以下目录和文件,并且把自己的公钥加到 authorized_keys 中: mkdir /root/.ssh touch /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys 经过这一步操作之后,后面可以通过 ssh 直接登录到容器中。 关闭容器 admiring_kapitsa 之后,把容器 commit 为一个本地镜像,这样以后可以重复使用 sudo docker stop admiring_kapitsa sudo docker commit admiring_kapitsa lewangdev/cudalab 下载 faster-whisper 的代码然后重新启动一个容器,并且配置好容器的 ssh 端口,挂载 faster-whisper 项目代码到容器中,例如我这里把 8822 端口映射到容器的 22 端口,把 faster-whisper 代码挂载到容器的 /src 目录下:...

November 28, 2023 · 1 min