博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GlusterFS的客户端访问和NFS设置
阅读量:7142 次
发布时间:2019-06-28

本文共 3611 字,大约阅读时间需要 12 分钟。

hot3.png

GlusterFS()是一个分布式存储系统,支持多种类型。GlusterFS支持裸机集群部署和Kubernetes容器部署,客户端可以使用专用客户端驱动mount到主机文件系统,也支持NFS/samba等协议,可以通过网络访问,或者通过进行访问。

  • 说明:这里用到的一些脚本工具在 。

1、Gluster volume服务设置

首先,检查一下节点的状态,如下:

supermap@podc01:~/openthings/kubernetes-tools/gluster/tools$ sudo gluster pool listUUID					Hostname  	State6dd32f80-4191-4b96-8021-53c241cefa66	10.1.1.204	Connected 85112a7f-2c6b-4c57-8f6f-636c84232418	10.1.1.234	Connected dae26553-62f7-4b32-81c3-c35e527872a9	10.1.1.205	Connected 7738c78a-ca52-413e-b609-7de9d3208314	10.1.1.202	Connected ee69bb6d-ca75-4c05-b423-525523f117f6	10.1.1.193	Connected fd4a83ea-0886-4d42-ab86-1aa9be6e154c	10.1.1.112	Connected bf976527-e48e-4c97-bfb6-7a4e47aaad31	10.1.1.203	Connected f629a751-ec21-4a24-976e-8ae9840628fe	localhost 	Connected

然后,创建volume:

# Create simple volume: gvz00gluster volume create gvz00 \10.1.1.193:/zpool/gvz00 \10.1.1.234:/zpool/gvz00 \10.1.1.205:/zpool/gvz00 \10.1.1.112:/zpool/gvz00 \force

开启卷gvz00的nfs服务,如下:

gluster volume set gvz00 nfs.disable off

注意:

  • 每个卷的NFS服务需要单独设置。
  • 默认设置为nfs.disable为on,需要设为off。逻辑有点不走寻常路,呵呵。

查看存储卷的状态:

sudo gluster volume status

返回信息如下:

Status of volume: gvz00Gluster process                             TCP Port  RDMA Port  Online  Pid------------------------------------------------------------------------------Brick 10.1.1.193:/zpool/gvz00               N/A       N/A        N       N/A  Brick 10.1.1.234:/zpool/gvz00               49153     0          Y       31752Brick 10.1.1.205:/zpool/gvz00               49153     0          Y       1121 Brick 10.1.1.112:/zpool/gvz00               49153     0          Y       19786NFS Server on localhost                     2049      0          Y       24770NFS Server on 10.1.1.203                    2049      0          Y       89228NFS Server on 10.1.1.205                    N/A       N/A        N       N/A  NFS Server on 10.1.1.202                    2049      0          Y       7498 NFS Server on 10.1.1.234                    2049      0          Y       27221NFS Server on 10.1.1.204                    N/A       N/A        N       N/A  NFS Server on 10.1.1.193                    2049      0          Y       24080NFS Server on 10.1.1.112                    2049      0          Y       25981 Task Status of Volume gvz00------------------------------------------------------------------------------There are no active volume tasks

如果需要关闭NFS服务,执行如下命令:

gluster volume reset disp_vol nfs.disable

2、存储服务的访问

2.1 gluster-client直接访问

需要将Gluster Volume服务挂载为Linux系统存储卷,挂载方式包括:

  • 手动挂载,如下:
mkdir /home/supermap/gvz00sudo mount -t glusterfs 10.1.1.201:/gvz00 /home/supermap/gvz00
  • 自動掛載,编辑/etc/fstab文件,加入:

10.1.1.201:/gvz00 /home/supermap/gvz00 glusterfs _netdev,rw,acl 0 0

請特別注意要加上 _netdev 選項。

使用 acl 選項可以在掛載目錄中啟用 POSIX ACL 的支援。

  • 挂载测试:
sudo mount -a
  • 查看卷:
df -h

2.2 挂载NFS Volume

使用 NFS 挂载之前,先确定rpcbind 已启动:

sudo systemctl start rpcbindsudo systemctl enable rpcbind
  • 手动挂载,如下:
mkdir /home/supermap/nfs-gvz00sudo mount -t nfs 10.1.1.201:/gvz00 /home/supermap/nfs-gvz00
  • 自动挂载,编辑/etc/fstab,添加:

10.1.1.201:/gvz00 /home/supermap/nfs-gvz00 nfs _netdev,rw 0 0
  • 挂载测试:
sudo mount -a
  • 查看卷:
df -h

3、数据处理流程

数据写入

Client 使用 NFS 写入数据时,会先将数据传送到挂载的节点,再由该节点写入各个分布式节点的Brick。

数据读取

Client 使用 NFS 读数据时,会先由挂载节点取得数据再传送到Client。

节点漂移和性能

  • 综上所述,对于Kubernetes的Pod使用该存储卷,如果是客户端直接挂载方式不具有迁移性(每个节点都需要设置挂载目录),NFS方式会存在单点故障和网络瓶颈问题。
  • 使用《》的方法挂载,可以通过Kubernetes的Service机制将网络数据路由到多个节点,具有可迁移性、消除单点故障。不过,在使用Kubeflow和JupyterHub时,出现了写入故障,提示权限不允许访问(使用Nginx服务,root访问没有问题),需要进一步解决该问题。
  • 使用Heketi可以安装Gluster到kubernetes中托管和自动调度卷(参见《》),不过目前版本发现有一些缺陷,而Gluster.org正在开发一个官方版的Kubernetes支持,在Gluster2中提供,目前还不成熟,需要进行较多的升级操作。

更多参考:

转载于:https://my.oschina.net/u/2306127/blog/2994262

你可能感兴趣的文章
脏读 幻读 不可重复读
查看>>
Apache相关安全设置
查看>>
一个Solr搜索实例,增删改查+高亮+分页
查看>>
xcode6 下 ios simulator 有 Home 键么?
查看>>
VB.NET,C#.NET调用Web Service,利用visual studio 的实现方法
查看>>
Road to the future——伪MVVM库Q.js
查看>>
java读取.properties文件乱码
查看>>
HDInsight-Hadoop现实(两)传感器数据分析
查看>>
keytool生成证书与Tomcat SSL配置
查看>>
ejabberd源码流程梳理
查看>>
Java并发3-多线程面试题
查看>>
java获取日期之间的差异
查看>>
[转]浅谈协方差矩阵
查看>>
[c#美味] Guid ToString 格式知多少?
查看>>
Swift - 页控件(UIPageControl)的用法
查看>>
二维码的生成细节和原理
查看>>
curl 网页抓取
查看>>
防止SQL注入攻击的一些方法小结
查看>>
Git是个好工具(转)
查看>>
BeginInvoke、ThreadPool、Task三类异步方法的区别和速度比较
查看>>