我想知道是否有人知道如何下载 Rackspace 云服务器中保存的服务器映像。我一直在搜索,但在 Rackspace 知识库中也没有找到任何内容。我知道它存储在文件系统中,但它到底在哪里?
如果我从服务器下载图片,我可以节省磁盘空间,如果有一天(我希望永远)我真的需要从图片中恢复,我可以轻松地将图片上传回来。但 Rackspace 中的这些信息太模糊了。我只是不想开一张票/支持来问这个问题,我希望其他人也遇到过同样的问题并能帮助我。
我使用的是 centOS 6.4,任何帮助我都会非常感激。我的意思是,如果你们知道镜像存储在文件系统的哪个位置,这就是我需要知道的全部。
干杯!;)
答案1
答案2
步骤1,在 Rackspace 云控制面板内的存储 > 文件下创建一个名为“export”的容器。
第2步,定制此脚本并在任何unix机器上运行它或者阅读下面的文档来了解其他方法。
#!/bin/bash
sudo apt-get install python-dev gcc python-pip
sudo pip install swiftly eventlet
SWIFTLY_AUTH_URL=https://identity.api.rackspacecloud.com/v2.0
# your Rackspace cloud username
# Username used to login to control panel
SWIFTLY_AUTH_USER=myuser
CUSTOMERID=123456798
# your Rackspace cloud API key
# Find the APIKey in the 'account settings' part of the menu of the control panel
APIKEY='fake0u23jiofds9032ijofds09823rijpo'
SWIFTLY_AUTH_KEY=$APIKEY
# 3 char region code for where your exported image is located (e.g., ORD)
SWIFTLY_REGION=DFW
REGION_EXPORTING_FROM=dfw
# what you want the downloaded image file to be named
LOCALFILENAME=MyDownloadedServer
# the container in Cloud Files containing your exported image
CONTAINER=export
# Find the image ID you'd like to make available on cloud files
# set the image id below of the image you want to copy to cloud files, see in control panel
IMAGEID=fake581e-c14561-3c46-45687-e045646675
IMAGEFILENAME=$IMAGEID # the name of your exported image in Cloud Files
# This section simply retrieves the TOKEN
TOKEN=$(curl -s https://identity.api.rackspacecloud.com/v2.0/tokens -X POST -d '{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"'${SWIFTLY_AUTH_USER}'","apiKey":"'${APIKEY}'"}}}' -H "Content-type: application/json" | python -c 'import json, sys; data = json.loads(sys.stdin.read()); print data["access"]["token"]["id"]')
# IMPORTANT: change receiving_swift_container to whatever $CONTAINER is
# This section requests the Glance API to copy the cloud server image uuid to a cloud files container called export
curl "https://$REGION_EXPORTING_FROM.images.api.rackspacecloud.com/v2/$CUSTOMERID/tasks" -X POST -H "X-Auth-Token: $TOKEN" -H "Content-Type: application/json" -d '{"type": "export", "input": {"image_uuid": "'"$IMAGEID"'", "receiving_swift_container": "export"}}'
# The above command simply set a pending command. Go play a game while it finishes.
sleep 4h;
swiftly --auth-url=$SWIFTLY_AUTH_URL --auth-user=$SWIFTLY_AUTH_USER --auth-key=$SWIFTLY_AUTH_KEY --region=$SWIFTLY_REGION --verbose get --output=${LOCALFILENAME} ${CONTAINER}/${IMAGEFILENAME}
更多信息;
1)将图片导出至云文件
您可以使用 API 将图像从 Rackspace 导出到您的 Cloud Files 容器。以下文章可以指导您完成该过程。
从 Rackspace Cloud 导出云服务器镜像
https://community.rackspace.com/products/f/25/t/7089?_ga=1.161905660.1332227198.1487618904
您还可以使用一个名为“Pitchfork”的工具。使用您的用户名和 API 密钥登录 Pitchfork 后,您将导航到“图像”部分并选择“导出”。运行该 API 调用后,需要一段时间才能在一个或多个云文件容器中看到图像。
https://community.rackspace.com/products/f/25/t/6432?_ga=1.161936636.1332227198.1487618904
2)从云文件下载图片
您可以使用 Swiftly 从 Cloud Files 下载镜像。Cloud files 中的对象不能大于 5GB。如果您的镜像大于此值,它将被分成多个 Cloud files 对象,可以使用 Swiftly 在本地下载并重新组装。
https://support.rackspace.com/how-to/use-swiftly-to-download-an-exported-image/
答案3
Rackspace 目前没有提供下载服务器映像的功能,但这并不意味着您永远无法获得它。
Rackspace 根本没有记录这一点,但是过去他们曾根据其他客户的要求这样做过:
如果您的服务器没有响应并且您输入了支持票,Rackspace 通常可以对您的服务器进行紧急快照并为您提供下载链接。对于 Linux 实例,Rackspace 将提供您的磁盘/分区的 gzip 原始映像;对于 Windows 实例您将收到一个 VHD。