银河麒麟高级服务器部署glusterfs

前言

GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。

GlusterFS的工作流程

① 客户端或应用程序通过 GlusterFS 的挂载点访问数据
② linux系统内核**通过 
VFS API 虚拟接口收到请求并处理;
③ VFS 将数据递交给 
FUSE 内核文件系统,这是一个伪文件系统,这个伪文件系统主要用来转存,它提供一个虚拟接口,映射出来/dev/fuse这样一个虚拟路径,而 FUSE 文件系统则是将数据通过/dev/fuse 设备文件递交给了 GlusterFS client 端。可以将 FUSE 文件系统理解为一个代理
④ 
GlusterFS client 会实时监听/dev/fuse下的数据,一旦数据更新,会把数据拿过来,client 根据配置文件的配置对数据进行处理
⑤ 经过 GlusterFS client 处理后,通过网络将数据传递至远端的 GlusterFS Server,
server会先转存到本地的 vfs 虚拟文件系统中**,然后再通过 vfs 转存到EXT3上。EXT3指的是各个block块中的EXT3文件系统中。

一、准备环境:

Kylin Linux Advanced Server release V10 (SP1) /(Tercel)-x86_64-Build20/20210518 *3台

192.168.1.101 node1

192.168.1.102 node2

192.168.1.103 node3

二、安装部署

2.1 gluster软件安装(所有机器执行)

yum install glusterfs  glusterfs-resource-agents  glusterfs-devel

执行systemctl start glusterd

或者systemctl enable --now glusterd

2.2 修改hosts文件(所有机器执行)

vim /etc/hosts 添加如下内容:

192.168.1.101 node1

192.168.1.102 node2

192.168.1.103 node3

2.3 创建对应目录(所有机器执行,对应的目录最好是单独分区,本例中非单独分区)

mkdir -p /opt/gluster/data

2.4 添加信任存储池,在node1上执行命令,并查看状态

gluster peer probe node2

gluster peer probe node3

gluster peer status

2.5 创建逻辑卷(node1上执行,逻辑卷类型很多,本例以复制卷为例)

gluster volume create gfs1 replica 3 node1:/opt/gluster/data node2:/opt/gluster/data node3:/opt/gluster/data force

gluster volume start gfs1

gluster volume info gfs1

2.6 客户端挂载测试(以node2为客户端为例)

mkdir /opt/gfsmnt

mount -t glusterfs node1:/gfs1 /opt/gfsmnt/

在node2的/opt/gfsmnt下创建文件

echo "hello kylinos" > gfs.txt

在node1和node3对应的/opt/gluster/data目录下都生成了gfs.txt文件

附一:GlusterFS 几种volume 模式说明:

一、 默认模式,既DHT, 也叫 分布卷: 将文件已hash算法随机分布到 一台服务器节点中存储。
gluster volume create test-volume server1:/exp1 server2:/exp2

二、 复制模式,既AFR, 创建volume 时带 replica x 数量: 将文件复制到 replica x 个节点中。
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2

三、 条带模式,既Striped, 创建volume 时带 stripe x 数量: 将文件切割成数据块,分别存储到 stripe x 个节点中 ( 类似raid 0 )。
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2

四、 分布式条带模式(组合型),最少需要4台服务器才能创建。 创建volume 时 stripe 2 server = 4 个节点: 是DHT 与 Striped 的组合型。
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

五、 分布式复制模式(组合型), 最少需要4台服务器才能创建。 创建volume 时 replica 2 server = 4 个节点:是DHT 与 AFR 的组合型。
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

六、 条带复制卷模式(组合型), 最少需要4台服务器才能创建。 创建volume 时 stripe 2 replica 2 server = 4 个节点: 是 Striped 与 AFR 的组合型。
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

七、 三种模式混合, 至少需要8台 服务器才能创建。 stripe 2 replica 2 , 每4个节点 组成一个 组。
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Kubernetes 部署 GlusterFS,需要进行以下步骤: 1. 安装 GlusterFS 在 Kubernetes 集群中的每个节点上安装 GlusterFS,可以使用以下命令: ```shell $ sudo apt-get install software-properties-common -y $ sudo add-apt-repository ppa:gluster/glusterfs-7 -y $ sudo apt-get update $ sudo apt-get install glusterfs-server -y ``` 2. 创建 GlusterFS 卷 可以使用 GlusterFS 的命令行工具 `gluster` 创建卷。首先需要创建一个 GlusterFS 集群,可以使用以下命令: ```shell $ sudo gluster peer probe <node1> $ sudo gluster peer probe <node2> ``` 其中,`<node1>` 和 `<node2>` 是 Kubernetes 集群中的两个节点。然后可以使用以下命令创建 GlusterFS 卷: ```shell $ sudo gluster volume create <volume-name> replica 2 <node1>:/data/glusterfs <node2>:/data/glusterfs force ``` 其中,`<volume-name>` 是卷的名称,`<node1>` 和 `<node2>` 是 GlusterFS 集群中的两个节点,`/data/glusterfs` 是 GlusterFS 的存储目录。 3. 创建 Kubernetes 存储类 可以使用以下 YAML 文件创建 Kubernetes 存储类: ```yaml kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: glusterfs-storage provisioner: kubernetes.io/glusterfs parameters: resturl: "http://<node1>:24007" restauthenabled: "false" restuser: "" secretNamespace: "default" secretName: "heketi-secret" ``` 其中,`<node1>` 是 GlusterFS 集群中的一个节点。 4. 创建 Kubernetes PV 和 PVC 可以使用以下 YAML 文件创建 Kubernetes PV 和 PVC: ```yaml kind: PersistentVolume apiVersion: v1 metadata: name: glusterfs-pv spec: storageClassName: glusterfs-storage capacity: storage: 1Gi accessModes: - ReadWriteMany glusterfs: endpoints: glusterfs-cluster path: <volume-name> readOnly: false --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: glusterfs-pvc spec: storageClassName: glusterfs-storage accessModes: - ReadWriteMany resources: requests: storage: 1Gi ``` 其中,`<volume-name>` 是 GlusterFS 卷的名称。 5. 使用 PVC 创建 Pod 可以使用以下 YAML 文件创建 Kubernetes Pod: ```yaml apiVersion: v1 kind: Pod metadata: name: glusterfs-pod spec: containers: - name: glusterfs-container image: nginx volumeMounts: - name: glusterfs-volume mountPath: /var/www/html volumes: - name: glusterfs-volume persistentVolumeClaim: claimName: glusterfs-pvc ``` 这个 Pod 会自动挂载 GlusterFS 存储卷到 `/var/www/html` 目录。 以上就是使用 Kubernetes 部署 GlusterFS 的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值