目录
一、Google Cloud Storge 介绍
Google Cloud Storage,是 Google Cloud Platform 的一项服务,为广泛的数据类型提供了统一的对象存储,包括活跃数据和存档数据。它可分为中个存储类别:区域、多区域、近线和远线。所有类别都提供了无限数据、用于数据访问的相同工具和 API、OAuth 和细粒度访问控制、访问其他 Google Cloud Storage 服务和按使用付费模式的功能。
1.1、四种存储类别的比较
您可能无法马上确定我们四种类别中的哪一种适合您的项目。但您可以随意挑选一种开始使用,以后可以轻松切换方案。随着您的需求出现变化,对象生命周期管理功能可以帮助您自动运用各种类别来优化性价比。
存储类别 | Multi-Regional | Regional | Nearline | Coldline |
---|---|---|---|---|
价格 | 每月每 GB $0.026 - $0.036 | 每月每 GB $0.02 - $0.035 | 每月每 GB $0.01 - $0.02 | 每月每 GB $0.007 - $0.014 |
适用场景 | 适合为频繁访问的数据提供最高的可用性 | 适合在单个区域内频繁访问的数据 | 适合访问频率低于一月一次的数据 | 适合访问频率低于一年一次的数据 |
冗余 | 地理位置冗余 | 区域级,跨可用性地区实现冗余 | 区域级 | 区域级 |
可用性 | 服务等级协议承诺为 99.95% | 服务等级协议承诺为 99.9% | 服务等级协议承诺为 99% | 服务等级协议承诺为 99% |
耐用性 | 99.999999999% | 99.999999999% | 99.999999999% | 99.999999999% |
响应速度 | 毫秒级访问速度,一致的 API | 毫秒级访问速度,一致的 API | 毫秒级访问速度,一致的 API | 毫秒级访问速度,一致的 API |
使用场景 | 内容存储和分发、业务连续性 | 在区域内存储数据和进行数据分析 | 存储不常访问的内容 | 归档存储、备份和恢复 |
应用 | 视频、多媒体、业务连续性 | 转码、数据分析、计算密集型数据处理 | 备份长尾内容、极少访问的文档 | 归档源文件备份、灾难恢复 |
1.2、需求
我们现在需要把我们在 Google 虚拟机上面的文件备份到 GCS(Google Cloud Storage) 上面去,我们这是使用 Gsutil工具,Gsutil工具是一个通过Google云软件开发工具包提供的Python应用。管理员可以使用此工具从命令行中执行存储桶和对象管理任务,例如删除对象和存储桶。
1.3、给虚拟机添加授权认证
我们登陆到虚拟机上面,默认已经给我们添加了gsutil
命令,如果没有,请安装 。
gcloud auth login
进行授权。 [root@sspanel ~]# gcloud auth loginYou are running on a Google Compute Engine virtual machine.It is recommended that you use service accounts for authentication.You can run: $ gcloud config set account `ACCOUNT`to switch accounts if necessary.Your credentials may be visible to others with access to thisvirtual machine. Are you sure you want to authenticate withyour personal account?Do you want to continue (Y/n)? YGo to the following link in your browser: https://accounts.google.com/o/oauth2/auth?redirect_uri=uxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faptype=offlineEnter verification code:
然后生成随机码,我们输入到终端,然后就授权完成了。
Enter verification code: 4/RQGq4RAUBrp0pA_R3SvuREXyLtczDuy-WLi1sqo23jJhAxEgchEMsosWARNING: `gcloud auth login` no longer writes application default credentials.If you need to use ADC, see: gcloud auth application-default --helpYou are now logged in as [wzlinux18@gmail.com].Your current project is [proxy1-179115]. You can change this setting by running: $ gcloud config set project PROJECT_ID
现在授权已经完成。
注意:如果您使用的是 Google Cloud Shell 或 Google Compute Engine 实例,则会预先安装并验证 Python 和 gsutil。如果您设置的 Google Compute Engine 实例没有范围限定为 Cloud Storage 的服务帐号,请运行 gsutil config 并按照说明操作。
二、备份操作
2.1 创建存储分区
存储分区是 Cloud Storage 中用于存放数据的基本容器。
要创建存储分区,请执行以下操作:使用gsutil mb
命令创建一个存储分区并为其指定一个唯一的名称: [root@sspanel ~]# gsutil mb -l asia-east1 gs://myweb-backup/Creating gs://myweb-backup/...
我们也可以在 Google Cloud Platform Console 看到创建的存储分区,可以对存储分区进行详细的设定。
比如我们的数据是很少访问的,可以修改一下存储类别为 Coldline,也可以添加对象生命周期,以节省我们的空间。
2.2 上传对象到存储分区
命令的操作和我们平时在 Linux 的操作命令差不多,我们把我的整个网站目录上传上去,对一些多任务的操作,我们可以添加一个-m
参数。
[root@sspanel wwwroot]# gsutil cp -r www.wzlinux.xyz gs://myweb-backup/Copying file://www.wzlinux.xyz/index.html [Content-Type=text/html]...Copying file://www.wzlinux.xyz/404.html [Content-Type=text/html]... Copying file://www.wzlinux.xyz/.htaccess [Content-Type=application/octet-stream]...Copying file://www.wzlinux.xyz/.gitattributes [Content-Type=application/octet-stream]...- [4 files][ 1.6 KiB/ 1.6 KiB] ==> NOTE: You are performing a sequence of gsutil operations that mayrun significantly faster if you instead use gsutil -m cp ... Pleasesee the -m section under "gsutil help options" for further informationabout when gsutil -m can be advantageous.Copying file://www.wzlinux.xyz/.gitignore [Content-Type=application/octet-stream]...
然后我们到 Console 上面查看一下上传的文件,为了增加传输速度,建议大家给文件打包之后再进行传输。
2.3 从存储分区下载对象
下载也很简单,我这里就拿着官方的案例写上吧,偷个懒。
gsutil cp gs://my-awesome-bucket/kitten.png Desktop/kitten2.png如果操作成功,此命令会返回以下内容:Copying gs://my-awesome-bucket/kitten.png...Downloading file://Desktop/kitten2.png: 0 B/164.3 KiBDownloading file://Desktop/kitten2.png: 164.3 KiB/164.3 KiB
2.4 将对象复制到存储分区的文件夹
gsutil cp gs://my-awesome-bucket/kitten.png gs://my-awesome-bucket/just-a-folder/kitten3.png
2.5 列出存储分区或文件夹内容
gsutil ls gs://my-awesome-bucket
三、备份计划
我们已经了解了备份的命令,非常简单,那我们做一个脚本,添加到定时任务中,每天同一时间把数据备份到存储中。
#! /bin/bashexport HOME="/home/wangzan"cd /root/tar -zcPf www.wzlinux.xyz$(date +%Y%m%d).tar.gz /www/wwwroot/www.wzlinux.xyz;/bin/gsutil cp www.wzlinux.xyz$(date +%Y%m%d).tar.gz gs://myweb-backup/;rm -f www.wzlinux.xyz$(date +%Y%m%d).tar.gz;
添加定时任务,让其每天凌晨2点钟进行备份。
0 2 * * * /home/data/scripts/www_backup.sh
我们测试了一下,看下效果。
之前一直上传不成功,缺少一个环境变量HOME,加上就可以,证书在什么路径就加在哪里。
参考文档: https://cloud.google.com/storage/docs/quickstart-gsutil