cubefs是什么 (cubefs)

cubefs,cubefs是什么

通过前文( CubeFS 存储技术揭秘系列[1] )相信大家对 CubeFS 各大组件有了充分的认识。但由于 CubeFS 客户端并不支持 Windows 平台的挂载,本文将带领大家采用折中方法在 Windows 平台访问 CubeFS 存储卷。

cubefs,cubefs是什么

通过3种常用的文件共享服务将 linux 上的 CubeFS 存储卷共享给 Windows 用户平台使用;既能解决 CubeFS 暂不支持 Windows 平台的问题,又能解决传统文件共享服务单机存储瓶颈限制。

cubefs,cubefs是什么

cubefs,cubefs是什么

集群搭建

可以参考 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" 

cubefs,cubefs是什么

这里简单为各位介绍如何通过 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 存储卷。

cubefs,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 账户进行登录认证。

cubefs,cubefs是什么

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:\

cubefs,cubefs是什么

至此本文介绍了通过文件共享服务解决 Windows 平台使用 CubeFS 的问题,以上只介绍了 FTP,Samba,NFS 最基础的部署,使用方法。

更多使用场景,请继续关注 CubeFS 官方公众号。