Tzchz's Blog

Tzchz's Blog
Enjoy coding life
  1. 首页
  2. 对象存储
  3. 正文

VPS挂载ScaleWay免费75GB对象存储,并确保重启后优先挂载目录

2022年8月19日 3309点热度 0人点赞 4条评论

VPS的硬盘空间向来“精贵”,对于硬盘空间较小的VPS,挂载外部存储是一个很好的选择。这样不但可以腾出更多的本地空间供虚拟内存等使用,而且也方便了数据的备份和迁移。

与通过专用用户界面上传下载的各大网盘平台不同,对象存储提供相对统一的CLI接口及程序化命令,其价格普遍昂贵。目前市面上的云平台中,对象存储的免费层往往只有10~20GB左右,并且大多还会另计请求费。而本文中选择的是Scaleway Cloud, 提供了75GB的免费存储空间及月流量且不计请求费,真的非常大方。

(注:Scaleway还提供75GB的归档存储,但无法直接存取,不过正好可以用于历史版本备份。)

零、文章结构

  • 注册账号和创建存储桶
  • 配置挂载的VPS
  • 确保重启后优先挂载目录(重要)

一、注册账号和创建存储桶

Scaleway账号的注册相对较严格,注册账号时需要验证卡,并且还会将验证码随扣账单发送,如果注册账号10天内不完成验证就会暂停账号,因此市面上一般出售的虚拟卡号不支持查帐单的话基本上过不了,建议使用正规的实体卡。

注册完成后,直接访问下面的链接创建一个存储桶:

https://console.scaleway.com/object-storage/buckets/create

需要注意的是,目前PARIS区域由于支持多区域,所以上传的文件默认是使用的Multi-AZ收费层级,如果是Web/CLI上传的话可以指定Onezone_IA免费层级,但是经询问客服确认,使用s3fs挂载不能指定。所以这里建议选择AMSTERDAM或者WARSAW区域,这两个区域上传就是默认Onezone_IA免费层级。

二、配置挂载的VPS



下面将存储桶挂载到VPS上。首先访问下面的链接,创建一个密钥。

https://console.scaleway.com/project/credentials

创建完会显示ACCESS_KEY和SECRET_KEY,只会显示一次,需要记下来。

然后开始为VPS配置挂载所需的环境。执行下面的命令安装软件和保存密钥,注意将ACCESS_KEY和SECRET_KEY换成上面记下的。

apt update && apt install -y s3fs
echo "user_allow_other" >>/etc/fuse.conf
mkdir -p /oss
echo ACCESS_KEY:SECRET_KEY > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs

下面是挂载命令。这里先运行测试一下,测试成功后记得执行"umount /oss"取消挂载或reboot系统,以便配置下一步的开机自启动。

其中BUCKET_ID是第一步在创建存储桶时所取的名称;BUCKET_REGION荷兰区为nl-ams,波兰区为pl-waw。

s3fs BUCKET_ID /oss -o allow_other -o passwd_file=~/.passwd-s3fs -o use_path_request_style -o endpoint=BUCKET_REGION -o parallel_count=15 -o multipart_size=128 -o nocopyapi -o url=https://s3.BUCKET_REGION.scw.cloud

三、确保重启后优先挂载目录(重要)

挂载的外部存储在重启时可能会遇到一个问题,就是如果使用该存储目录的软件和s3fs都启用了开机自启动,而s3fs完成挂载的时间相对更晚的话,那么该软件可能会误读取本机存储而不是挂载的存储,返回空目录。经过试验,使用下面的方法成功解决这个问题。

下面以nginx为例,其余程序类似。如果第二步运行的程序需要指定运行目录的话(如php -S),修改/oss/nginxsite即可。(注意不是修改directory,因为这里使用了/bin/bash以便依次运行多个命令)

首先关掉nginx原来的自启动,如果你配置了s3fs的自启动当然也需关掉:

systemctl disable nginx

我比较习惯supervisor,那么这里就用supervisor完成自启动工作:

apt install -y supervisor
systemctl enable supervisor
vi /etc/supervisor/conf.d/s3fs.conf

s3fs.conf文件内容如下:

[program:s3fs]
command=/bin/bash -c "刚才的挂载命令 && cd /oss/nginxsite && systemctl start nginx"
directory=/ # 注意运行目录不是修改这里
autorestart=true
stderr_logfile=/supervisor-err.log
stdout_logfile=/supervisor-out.log
user=root
stopsignal=INT

然后重新加载supervisor的配置:

supervisord -c /etc/supervisor/supervisord.conf

重启一下系统,执行"df -h"命令可以看到VPS多了一块大“硬盘”。

  • 【原创】转载请注明出处
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: OSS Scaleway vps 对象存储
                               发布于 2022年8月19日

tzchz

个人主页:https://chz.asia

打赏 点赞

文章评论

  • 2333

    你好,我在别的地方看到说必须在同一个区域的实例和对象存储之间的流量才不收费,也就是说我的法国实例和荷兰的对象存储之间的流量是计费的吗?我看官方说区域间和外部传输也有免费的75G?

    2022年9月22日
    回复
    • tzchz

      @2333 不同区域间是75G流量免费,同一区域间目前是不限流量的。虽然75G流量也够用了,但是毕竟不限量放心一点

      2022年10月17日
      回复
  • weeper

    博主,请问如何取消法国区的储存呢?不打算用这个,只用VPS对我而言就够了

    2023年1月6日
    回复
    • tzchz

      @weeper 删掉存储桶就可以

      2023年1月14日
      回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    tzchz

    个人主页:https://chz.asia

    About me
    • Tzchz Home
    • Tzchz’s NoteBook
    • Tzchz’s GitHub
    • Online Apps
    My friends
    • 道之远兮
    • YF's Blog
    • 树 - 洞
    • 一颗柚子

    COPYRIGHT © 2018 - 2025 TZCHZ'S BLOG. ALL RIGHTS RESERVED.

    THEME KRATOS MADE BY SEATON JIANG