免费给VPS扩容75G数据盘
具体思路
实际上,我们很常见的是把s3存储桶挂载到本地,不过这次,我们使用工具s3fs( https://github.com/s3fs-fuse/s3fs-fuse ),它可以实现通过 FUSE 挂载 S3 存储桶到Linux,macOS等!
于是,我就想到找免费的s3,然后挂载到我们的vps上,既可以当做vps扩容存储,也可以当成安全备份空间,一举两得。
理论上,所有s3协议的存储桶都可以使用这种方法挂载到vps或者本地!
工具和原材料
本次教程,我使用Debian 10系统的vps,加上Scaleway(https://console.scaleway.com/register)提供的免费对象存储75G;
我自己的API在书签上
Scaleway的总公司是online,2002年初创,有欧洲3家数据中心(巴黎、阿姆斯特丹、华沙),它比较特色的服务是可以直接创建苹果M1芯片的远程主机 €0.11/小时;Scaleway自称对象存储服务器位于地下 25 米的防辐射避难所中,那我就感觉:非常安全——于是,本次我就选择了Scaleway!
Scaleway的注册需要信用卡,要支持欧元消费,没有信用卡可以参考我的文章:虚拟卡 和 实体卡,再没有你还可以考虑 Oracle免费20G的s3、AWS免费5G的S3等等。
操作步骤
1、在Scaleway创建存储桶;
(注册需要信用卡验证,扣款1欧元后,自动返还,可以在信用卡账单明细查询验证码4位数)
需要注意: 存储桶名称要记录;地区不要选择巴黎;可见性选择:公开!
2、在Scaleway创建APIkey;
需要注意: 创建apikey时候,持有者是IAM
,过期时间:永不过期
,是否用于对象存储:我们选择是
点击生成密钥以后,Access Key
和 Secret Key
一定要复制保存好,这玩意儿只显示一次!
3、vps内操作:
ACCESS_KEY:SECRET_KEY要修改成你的!
(yum update && yum install -y s3fsecho "user_allow_other" >> /etc/fuse.confmkdir -p /ossecho SCWHP8VNS0SN4J5BEHET:083ea998-161c-4216-b956-1ceca8612207 > ~/.passwd-s3fschmod 600 ~/.passwd-s3fs)
yum update && yum install -y s3fs
echo "user_allow_other" >> /etc/fuse.conf
mkdir -p /oss
echo SCWHP8VNS0SN4J5BEHET:083ea998-161c-4216-b956-1ceca8612207 > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
apt update && apt install -y s3fs
echo "user_allow_other" >>/etc/fuse.conf
mkdir -p /oss
echo SCWHP8VNS0SN4J5BEHET:083ea998-161c-4216-b956-1ceca8612207 > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
s3fs 此处求改为(BUCKET_ID) /oss -o allow_other -o passwd_file=~/.passwd-s3fs -o use_path_request_style -o endpoint=pl-waw -o parallel_count=15 -o multipart_size=128 -o nocopyapi -o url=https://s3.pl-waw.scw.cloud
https://q此处求改为(BUCKET_ID).s3.pl-waw.scw.cloud
BUCKET_ID修改成存储桶名称,有两处BUCKET_REGION修改成你的!在
Bucket Endpoint中我们可以定位到存储桶的区域,阿姆斯特丹是 nl-ams
华沙是 pl-waw
下面,检查vps是否已经挂载了存储桶;
这里会显示有256T空间,但是不要太高兴了,我们能用的只有75G,超出按月收费呀,0.01欧/1G/月!(这里更正一下华沙的是16E的空间,超出部分收费相当于100G空间1个月1欧元,也很贵)
4、至此,我们完成挂载了,可以试试硬盘的速度了!需要说明的是经过dd测试,挂载的存储桶会因为块大小的不同有明显的速度瓶颈,最低13M/s,最高39M/s,没法像本地设备一样读写,也要被网速和延迟所限制。
所以,若你想把网站文件放在存储桶那么速度会稍稍有些慢,举例来说用美国的vps和欧洲的对象存储,要走小半个地球呢。如果你把存储桶作为备份盘,那非常可以。还能搞个定时备份,而且存储桶与vps是分离的,vps损坏都没关系,我们可以远程下载你存储桶内的文件,这一点我感觉是本期视频的亮点。
5、我们还要设置开机启动,如果你需要的话!
然后添加下面代码:
注意:双引号内部内容与手动挂载一致!!然后可以重启一下看看效果!
开机启动为乌班图系统,我用的是CENTOS系统,下面是CENTOS的具体方案:
s3fs qiushuichangtian /oss -o allow_other -o passwd_file=~/.passwd-s3fs -o use_path_request_style -o endpoint=pl-waw -o parallel_count=15 -o multipart_size=128 -o nocopyapi -o url=https://s3.pl-waw.scw.cloud
这条命令怎么能实现每次开机启动就自动执行要在CentOS上实现开机自动执行命令,您可以按照以下步骤进行操作:
创建一个新的Shell脚本文件,例如
mount-s3fs.sh
:复制sudo nano /usr/local/bin/mount-s3fs.sh
在文件中添加要执行的命令,例如:
复制#!/bin/bash
/usr/local/bin/s3fs qiushuichangtian /oss -o allow_other -o passwd_file=~/.passwd-s3fs -o use_path_request_style -o endpoint=pl-waw -o parallel_count=15 -o multipart_size=128 -o nocopyapi -o url=https://s3.pl-waw.scw.cloud这将创建一个名为
mount-s3fs.sh
的Shell脚本文件,它将执行您的s3fs
命令来挂载S3存储桶到/oss
目录。保存并关闭文件。
将脚本文件设置为可执行:
复制sudo chmod +x /usr/local/bin/mount-s3fs.sh
创建一个新的Systemd服务文件,例如
mount-s3fs.service
:复制sudo nano /etc/systemd/system/mount-s3fs.service
在文件中添加以下内容:
[Unit]
Description=Mount S3FS on boot
After=network.target
[Service]
Type=simple
ExecStart=/whh/mount-s3fs.sh
[Install]
WantedBy=multi-user.target这将创建一个名为
mount-s3fs
的Systemd服务,它将在系统启动时自动执行/usr/local/bin/mount-s3fs.sh
脚本文件。保存并关闭文件。
重新加载Systemd守护程序以加载新的服务文件:
复制sudo systemctl daemon-reload
启用新的Systemd服务以在系统启动时自动运行:
复制sudo systemctl enable mount-s3fs
文件在哪?
上面我们把s3挂载到vps上,可以通过ftp,sftp上传和下载文件,考虑到对象存储的安全性,所以我们不得不牺牲了一些速度,不建议用这个方法直播,视频文档放在存储桶推流会出现卡顿。最后,我们备份的文件都可以在Scaleway对象存储后台看到并下载。
进阶玩法(进阶玩法楼主没有测试,楼主是超级老白)
我现在想到的就是实现自动备份网站的文件和数据库,具体实现的方法如下:
1、写backup.sh如下:
2、chmod u+x backup.sh
3、添加定时任务:
添加:
保存,然后查看任务
没问题的话,每天10:30分,服务器将自动打包网站文件和数据库,然后把备份的文件发送到/oss也就是我们挂载的数据库里,这下安全了吧。