环境准备与软件安装
本文档基于 CentOS Linux release 7.5.1804 (Core) 64bit 系统,指导如何单机安装部署 LeoFS 对象存储系统。官方安装文档可参考:LeoFS Installation Guide。
首先,安装必要的工具并下载 LeoFS 安装包:
yum install screen wget -y
screen -S leofs
cd / && mkdir codefiles && cd codefiles
wget -c https://github.com/leo-project/leofs/releases/download/1.4.2/leofs-1.4.2-1.el7.x86_64.rpm
yum install -y nc
sudo yum install redhat-lsb-core
sudo rpm -ivh leofs-1.4.2-1.el7.x86_64.rpm
ls -l /usr/local/leofs/
配置 Bucket 域名
LeoFS 使用虚拟主机(vhost)模式,需要修改本地 hosts 文件以支持 Bucket 域名解析。
vi /etc/hosts
将文件中原有的内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
修改为以下格式,其中 {BUCKET_NAME} 替换为你自定义的 Bucket 名称:
127.0.0.1 localhost {BUCKET_NAME}.localhost
例如:
127.0.0.1 localhost myfirstbucket.localhost
修改完成后,保存并退出。
关于 Bucket 命名的规范
Bucket 名称必须遵循 Amazon S3 规范:
- 名称必须在全局唯一,不能与已存在的 Bucket 重复。
- 必须符合 DNS 命名约定。
- 长度必须在 3 到 63 个字符之间。
- 不能包含大写字母或下划线。
- 必须以小写字母或数字开头。
- 由一系列标签组成,相邻标签由英文半角句点“.”分隔。
- 可以包含小写字母、数字和连字符(-),每个标签必须以小写字母或数字开头和结尾。
- 不能格式化为 IP 地址(例如 192.168.5.4)。
- 建议在使用虚拟托管样式时,不要在 Bucket 名称中使用句点(“.”),以避免与 SSL 通配符证书的匹配问题。
启动 LeoFS 服务
使用 systemctl 命令启动 LeoFS 的核心服务组件:
systemctl start leofs-manager-master leofs-manager-slave leofs-gateway leofs-storage
启动后,可以使用管理命令查看服务状态:
leofs-adm status
正常情况下,除了用于一致性校验的 Ring-hash 可能暂无值外,其他组件均应显示运行状态。确认无误后,启动管理服务:
leofs-adm start
用户与权限管理
创建一个新用户(将 xxx 替换为你的用户名):
leofs-adm create-user xxx
此命令会生成对应的 Access Key ID 和 Secret Access Key,请妥善保存。
为了通过域名访问,你需要在 DNS 服务商处为你的网关域名设置泛解析(例如 *.yourdomain.com)。
设置 Bucket 的访问权限,命令格式如下:
leofs-adm update-acl <bucket> <access-key-id> <canned-ACL>
例如,将某个 Bucket 设置为公开读:
leofs-adm update-acl mybucket AKIAIOSFODNN7EXAMPLE public-read
注意:如果希望使用更安全的访问方式,建议将 Bucket 设为私有,然后通过生成预签名 URL 来访问对象。
默认网关服务端口为 8080。若需直接使用 80 端口提供服务,需要修改 LeoFS 网关的配置文件,将监听端口从 8080 改为 80。
安装 LeoCenter 管理界面
LeoCenter 是 LeoFS 的 Web 管理界面。安装前需要配置 Ruby 环境。官方安装指南:LeoCenter Documentation。
首先,由于系统自带的 Ruby 版本可能过低,需要先升级。移除旧版本 Ruby:
sudo yum remove ruby ruby-devel -y
安装编译所需的开发工具包:
sudo yum groupinstall "Development Tools" -y
sudo yum install openssl-devel -y
下载并编译安装 Ruby 2.5.0:
cd /codefiles
wget http://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz && tar xvfvz ruby-2.5.0.tar.gz && cd ruby-2.5.0 && ./configure && make && make install
安装 gem 并更换为国内镜像源以加速下载:
yum install gem -y
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
yum install ruby-devel -y
sudo gem update --system
sudo gem install bundler
sudo gem install eventmachine -v '1.2.7'
sudo gem install rack-test -v '1.6.10' --source 'https://gems.ruby-china.com/'
说明:原文中使用的淘宝源(ruby.taobao.org)已停止维护,建议使用 https://gems.ruby-china.com/ 作为替代。
克隆 LeoCenter 代码仓库并进入目录:
git clone https://github.com/leo-project/leo_center.git && cd leo_center
编辑 Gemfile 文件,将其顶部的源地址修改为国内镜像:
vi /codefiles/leo_center/Gemfile
将 source "https://rubygems.org" 修改为:
source "https://gems.ruby-china.com/"
最后,切换到合适的用户(如 www 用户)并安装依赖:
su www
bundle install
依赖安装完成后,即可按照 LeoCenter 官方文档的说明启动 Web 管理界面。