服务器运维之阿里云ECS
1.前言
前两天阿里云服务器上的ECS服务器过期了,本来以为服务器上没有什么东西了,但是后来检查遗留的代码的时候,发现了在一台过期的服务器资源上,竟然还有一个数据库在使用,简直蛋疼啊。于是需要恢复数据和系统,但是有不想花钱,怎么办呢?
阿里云给出的建议就是:
1、您可以先临时续费,比如只续费7天,续费完成后,启动服务器,再下载数据到本地即可。续费完成后,可以再次提问“退款”,来退款实例即可。
2、不希望续费的话,您也可以通过创建快照,然后导出镜像到本地,此过程会产生一定的流量费用。
如果超过15天后未续费,已经释放情况下,释放后数据无法恢复和下载。
1.云虚拟主机过期后备份数据库数据 (这个是云虚拟机的数据备份,不是ecs的备份。登录主机控制台,选择目标主机,依次选择工具>备份恢复,单击备份数据库,输入备注信息,选择要备份的数据,再单击确认即可)
费用
关于钱的问题,我查了一下,创建镜像是需要钱的,计费规则很蛋疼,一方面是快照的费用,一方面要是导出镜像的话,还要有oss的费用,两方面的费用加起来,才是导出一个磁盘镜像的最终费用。
(1) 快照的费用
计费条件:
假设您账户下在杭州地域有三块云盘,在10:20为云盘创建了三份快照,快照大小分别是50 GiB、220 GiB和40 GiB。如果您当天没有删除这几份快照,则快照费用如下:
快照单价:假设华东1(杭州)地域的快照按量付费询价价格为0.12元/GiB/月,相当于0.000166667元/GiB/小时。
快照容量:50 GiB + 220 GiB + 40 GiB = 310 GiB。
计费时长:10:20~11:00期间不满1小时,按1小时计算。到23点结算时,共计13小时。
账单计算:
快照费用 = 快照单价 * 快照容量 * 计费时长,即310 GiB * 0.000166667元/GiB/小时 * 13 = 0.67171元。
账单支付页面实付金额:0.67元。
历史账单详情:0.672元。
总结起来就是很低就对了。我记得磁盘扩容的时候高效云盘每月才刚14块,应该不是特别的高的。
2.导出ECS服务器系统
除了付费临时开通,然后下载数据之外,还可以将ECS的进行磁盘镜像,下载下来,然后在虚拟机中运行。
(1)选择镜像,创建自定义镜像,因为创建惊喜可能时间较长,需要等待。
(2)创建完成之后,可以选择导出镜像。开通 对象存储服务OSS,创建一个 bucket,然后授权资源访问。
1.导出镜像 (如何导出镜像,官方给的步骤,非常的详细)
2.镜像FAQ (镜像的相关问题)
4.导入镜像必读
7.把阿里云镜像导出到本地虚拟机 (这里有一个镜像格式的选择,但是,我没有找打这个选项,我是华北杭州,没有这个选项,导出的就是raw格式的数据。)
3.创建镜像
刚开始创建镜像的过程中,我直接选择了实例创建镜像,我也有一个地方没有弄明白,官方的文档中说可以选择包括所有的磁盘文档包括数据盘文件。就是说创建的磁盘镜像包括所有的云盘,但是我没有找到包括所有磁盘的选择项。
后来我在自定义创建镜像中找到了这个选择项: 先是创建系统快照 -> 然后创建数据盘快照 -> 最后创建自定义镜像 -> 选择附加数据盘快照
1.使用快照创建自定义镜像 (这里有说明如何创建自定义磁盘快照,并添加数据盘的快照)
4.导出镜像
创建完镜像后,可以在左侧的镜像菜单中,选择要导出的镜像。在导出镜像的时候,有文档说,可以选择下载的格式,但是我这里在导出镜像的时候没有选择镜像格式的地方。
说明 如果您选择RAW作为镜像格式,导出后镜像文件扩展名默认为.raw.tar.gz,解压后扩展名为.raw。如果您的本地计算机为Mac OS X系统,推荐您使用gnu-tar解压工具。
5.下载镜像
导出的镜像被放到了oss中,所以需要去oss中下载镜像,反正要钱,存储要钱,下载也要钱。
6.转换镜像格式
下载的镜像格式,如果没有特别的设置的话,应该是RAW格式的,应该使用qemu-img进行格式的转换。安装并设置环境变量,进入raw磁盘所在的目录,执行命令进行转换。
1 | # -f的参数值为源镜像文件的格式。 |
1.qemu-img转换镜像格式 (可以使用qemu-img工具进行镜像格式的转换。支持转换RAW、qcow2、qcow1、VMDK、VDI、VHD(vpc)、VHDX或QED格式的镜像转换成VHD格式)
2.使用qemu-img转换镜像格式 (和上面的基本一样)
3.将 img 转换为 vhdx/vmdk (这里将img转换为了vhxd格式,这里的命令直接将raw转换为vhdx,但是我在执行的时候,报错了)
4.StarWind V2V Image Converter:虚拟机镜像转换工具,可将 IMG 文件转换为 VMware VMDK 文件 (这里介绍了一个StarWind V2V的格式转换工具)
5.Hyper-V .vhdx 格式磁盘镜像转换为VirtualBox可用的.vhd格式 (使用Hyper-V自带的命令行转换vhdx到vhd)
7.加载镜像
因为使用qemu-img转换出的vhd格式的镜像,理论上可以在Hyper-V上运行,但是在实际操作过程中,其实是不行的,也就是使用raw转换的vhd,在Hyper-V是无法运行的,会出现各种问题,最后需要在VirtualBox中运行vhd镜像格式文件。在virtual中运行过这个vhd之后,再拿这个vhd格式的镜像,放到Hyper-V中运行,就可以了,没有提示:文件压缩或者是稀疏文件的问题了。具体可以查看 HyperV加载阿里云镜像
在VirtualBox中创建进行,指定vhd位置以及如何使用Hyper-V与VirtualBox共用,这个我就不详细列举了,反正最好就是关闭Hper-V,安心的使用VirtualBox进行虚拟机加载。
1.虚拟机工具VirtualBox、VMWare与Hyper-V大比拼
2.利用VBoxManage对虚拟机格式vdi、vmdk、vhd进行互转
3.虚拟机VirtualBox怎么添加新的虚拟硬盘
问题
使用qemu-img进行转换的时候,指定格式为vhdx,会出现下面的问题:
(1) ERROR:../../../util/oslib-win32.c:61:qemu_try_memalign: assertion failed: (is_power_of_2(alignment))
使用命令行qemu-img将raw格式转换为vhdx格式的时候,出现了这个问题。
1 | ## 报错的命令 |
解决方法:其实也不算解决方案,就是放弃转换为vhdx,直接转换为vhd。
1.Qemu-img convert vmdk to vhdx (有原因说是因为在虚拟机中运行了这个程序,但是我的情况不是。当然也有人提到了使指定vpc格式而不是vhd格式进行转换)
(2) qemu-img: Unknown file format ‘vhd’
执行将raw转换为vhd时出现的问题,不识别的格式,解决方法就是将vhd改为vpc。
1 | ## 报错的命令 |
1.虚拟机格式转换之RAW转VHD (这里给出了解决方案,将raw转为vhd,或者使用xen-tools提供的vhd-util命令转换)
(3) 由于虚拟磁盘系统限制,无法完成请求的操作。虚拟硬盘文件必须是未压缩和未加密的文件,并且不能是稀疏文件
在Hyper-V中创建阿里云导出的虚拟机的时候,出现了下面的错误。
我的vhd格式并没有加密和压缩
阿里云工程师给出的解决方案,让我把镜像复制到新加坡,然后从新加坡生成指定格式的镜像,然后再下载。我真的想吐槽了,这不是又要加钱吗?世界啊,加钱可以达到。
部分地域支持镜像导出时选择格式,支持RAW、VHD、QCOW2、VDI和VMDK。目前测试新加坡等海外地域支持这个功能,您方便用这个功能试下直接导出指定格式来使用看还有报错吗?镜像可以从原始地域复制到目标地域,[参考](https://help.aliyun.com/document_detail/25462.html)
1.Hyper-V 启动时错误:检查点操作失败。由于虚拟磁盘系统限制,无法完成请求的操作。 (取消“压缩内容以便节省磁盘空间”,这个我的vhd本来就没有勾选,那么只能是一个原因了,那就是文件是稀疏文件了。)
2.qemu-img命令详解
3.qemu-img 整理 (默认会被转换为与raw文件格式(且默认使用稀疏文件的方式存储以节省存储空间))
4.raw与qcow2的区别
5.Openebula镜像制作
qemu-img默认的raw格式的文件其实是稀疏文件(sparse file),稀疏文件就是在文件中留有很多空余空间,留备将来插入数据使用。如果这些空余空间被ASCII码的NULL字符占据,并且这些空间相当大,那么,这个文件就被称为稀疏文件,而且,并不分配相应的磁盘块。
我查了很多的资料,就是没有解决这个稀疏文件的问题,只有说了raw是稀疏文件,但是没有地方解决如何转换稀疏文件。由于我的系统上开启了Hyper-V所以很大程度上,不能安装virtualBox,测试能用VirtualBox打开了。
1.NTFS 稀疏文件 (实际的代码处理稀疏文件)
2.如何将Linux磁盘映像转换为稀疏文件?
3.proxmox qcow2转化为vhdx格式
4.稀疏文件 (是一种计算机文件,它能尝试在文件内容大多为空时更有效率地使用文件系统的空间。它的原理是以简短的信息(元数据)表示空数据块,而不是在在磁盘上占用实际空间来存储空数据块。只有真实(非空)的数据块会按原样写入磁盘。)
解决稀疏文件问题
关于稀疏文件的最终解决方式,其实挺蛋疼的。就是先把转换好的vhd格式的系统镜像,在virtualbox中打开一遍,也就是在virtualbox中创建新的虚拟机,然后指向转换后的vhd文件,等到完全登陆之后,可以进行一次登陆操作,然后退出系统,关闭虚拟机,这个时候再把这个vhd格式的镜像,放到Hyper-V中就可以使用了。听听,这是人干的事吗?是不是非常的蛋疼呢?
解决ubunto系统在hyper-v黑屏问题
就是用tty2,而不是tty1,使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。
(4) 无法创建镜像
我有一个磁盘,是数据盘,本来应该先生成快照,然后创建磁盘镜像,下载到本地,选择挂载,但是这个时候出现了无法创建镜像的问题,说是2013年之后创建的系统盘才能进行镜像的创建,但是我想把系统和数据都下载下来进行VirtualBox中挂载,这个怎么办呢?
我提交了工单咨询阿里云的客服,他说没有办法,只能自己下载数据,本身就是没有办法进行导出。我只能先把系统盘扩容了,然后把D盘数据拷贝到C盘,然后用系统盘创建镜像,希望这样把数据保留下来。
【解决方法】
我在创建系统盘的时候,尝试选择添加数据盘,这个时候,在选项里,可以添加已经创建的那个数据盘的快照。我在添加数据盘的地方,下拉搜索,竟然可以选中那个盘。
这样我就不用单独的创建数据盘的镜像了,也解决了我数据盘挂载的问题了。
但是,更让我觉得蛋疼的是,竟然不支持windows导出镜像
1.同账号下阿里云ecs克隆——通过镜像更换系统