集群搭建
可以参考 CubeFS十分钟入门丨单机搭建CubeFS集群 [2] 快速搭建CubeFS集群。
创建卷
请求 Master 服务接口,创建卷
- name,卷名
- capacity,卷配额,单位GB
- owner,卷所属用户,如果集群中没有与该卷的 Owner 同名的用户时,会自动创建一个用户 ID 为 Owner 的用户
curl -v "http://127.0.0.1:17010/admin/createVol?name=test&capacity=100&owner=cfs"
更多卷操作可以参考创建卷[3]。
挂载卷
创建好存储卷后,使用官网客户端指定配置文件挂载,注意需要安装 fuse 环境。
/home/service/cfs/windows/cfs-client -c /home/service/cfs/windows/client.conf
#/home/service/cfs/windows/client.conf
{
"mountPoint":"/mnt/windows", #挂载点
"volName":"***", #挂载卷
"owner":"*******", #卷的用户ID
"accessKey":"**************",
"secretKey":"**************",
"masterAddr":"*************", #master的地址或域名
"logDir":"/home/service/cfs/windows/log", #日志目录
"rdonly":"",
"logLevel":"warn"
}
如果用户不清楚如何获取配置文件中 owner 和 accessKey,secretKey 等信息,可以使用 cfs-cli 工具查询。
#owner信息
cfs-cli volume info <volume_name> |grep <Owner>
#accessKey,secretKey信息
cfs-cli user info <Owner> |egrep "Access Key|Secret Key"
这里简单为各位介绍如何通过 vsftpd 和 Samba 等服务来共享 CubeFS 的挂载目录。
FTP
FTP 有三种登录方式,匿名登录、本地用户登录和虚拟用户登录。为了更好地为用户实现多目录鉴权,这里推荐大家使用虚拟用户的方式来进行登录认证。配置方法如下:
- 安装 FTP
yum install vsftpd -y
- 配置虚拟用户
#配置账户,奇数行代表用户名,偶数行代表密码
vi /etc/vsftpd/loginuser.txt
test
test123
#执行命令生成虚拟数据库
db_load -T -t hash -f /etc/vsftpd/loginuser.txt /etc/vsftpd/login.db
chmod 600 /etc/vsftpd/login.db
vi /etc/pam.d/vsftpd
#将以下内容增加的原文件前面两行:
auth required pam_userdb.so db=/etc/vsftpd/login
account required pam_userdb.so db=/etc/vsftpd/login
auth sufficient pam_userdb.so db=/etc/vsftpd/login
account sufficient pam_userdb.so db=/etc/vsftpd/login
#新建系统用户
useradd vsftpd -d /home/vsftpd -s /sbin/nologin
chown vsftpd:vsftpd /home/vsftpd
#修改配置
/etc/vsftpd/vsftpd.confanonymous_enable=NO #禁用匿名登入
dirmessage_enable=YES
xferlog_enable=YESxferlog_file=/var/log/vsftpd.log #记录ftp操作日志
xferlog_std_format=YES
chroot_local_user=YES #对用户访问只限制在主目录 不能访问其他目录
guest_enable=YES #启用guest
guest_username=vsftpd #使用虚拟账号形式
user_config_dir=/etc/vsftpd/user_conf #虚拟账号配置目录
pam_service_name=vsftpd #对vsftpd的用户使用pam认证
local_enable=YES
allow_writeable_chroot=YES
#创建的虚拟账号配置目录
mkdir /etc/vsftpd/user_conf
vi /etc/vsftpd/user_conf/test
#加入以下内容,为test虚拟账户绑定CubeFS挂载目录。即上述client.conf中"/mnt/windows"
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=<CubeFS挂载目录>
#启动vsftpd
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
- Windows 访问 FTP
Windows 访问 FTP完成上述配置后启动 vsftpd 服务,即可通过 ftp 软件来登录访问 CubeFS 存储卷。
注意:用户可以在 /etc/vsftpd/loginuser.txt 中配置多个虚拟账户以对应不同的 CubeFS 挂载目录;增加虚拟用户时需重新生成临时数据库 .db 文件。
Samba
Samba 是种用来让 UNIX 系列的操作系统与微软 Windows 操作系统的 SMB/CIFS 网络协议做链接的自由软件。由服务器及客户端程序构成。Samba 可以通过匿名或系统用户来进行登录认证。配置方法如下:
- 安装 Samba
yum install samba -y
- 配置 Samba 账户
#在/etc/samba/smb.conf中新增以下配置
[test] path = <CubeFS挂载目录>
read only = No
valid users = test
#新建用户
useradd -M -s /sbin/nologin test
#将系统用户添加为Samba账户,并创建密码
smbpasswd -a test
#启动samba
systemctl status smb.service
- Windows 访问 Samba
完成上述配置后,在 Windows 上使用 win R,输入 \\Samba_ip 后即可访问 Samba 服务;使用上述创建的 Samba 账户进行登录认证。
NFS
NFS 即网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享彼此的文件。可以挂载远程主机的共享目录到本地,非常方便地操作远程文件。配置方法如下:
- 安装 NFS
yum install rpcbind nfs-utils -y
- 配置共享目录和权限
#vim /etc/exports后在配置文件中加入一行
"CubeFS挂载目录" *(rw)
#意思是将CubeFS挂载目录共享给所有客户端,这里的*指代所有,也可以是某一个ip,或网段。
#保存使配置生效
exportfs -r
#按以下顺序启动服务
systemctl start rpcbind
systemctl start nfs
- Windows 挂载 NFS
打开-控制面板-程序-打开或关闭 windows 功能-勾选 NFS 客户端。但 windows 家庭版不支持,需要升级专业版,可以在设置更改密钥中添加专业版密钥即可升级。
#在Windows cmd中输入,将CubeFS挂载目录共享到本机的F驱动器。注意CMD指令路径使用\
mount \\NFS_ip\<CubeFS挂载目录> F:\