Gluster 简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gluster 简介相关的知识,希望对你有一定的参考价值。
参考技术A
Gluster 是一种可扩展的分布式文件系统,可将来自多个服务器的磁盘存储资源聚合到一个全局命名空间中。
GlusterFS 体系结构将计算,存储和 I/O 资源聚合到一个全局命名空间中。 每台服务器加上存储设备(配置为直连存储,JBOD 或使用存储区域网络)被视为节点。 通过添加其它节点或向每个节点添加额外存储来扩展容量。 通过在更多节点之间部署存储来提高性能。 通过在节点之间复制数据来实现高可用性。
GlusterFS 通过以太网或 Infiniband RDMA 互连将各种存储服务器聚合到一个大型并行网络文件系统中。 GlusterFS 基于可堆叠的用户空间设计。
GlusterFS 有一个客户端和服务器组件。服务器通常部署为 storage bricks,每个服务器运行 glusterfsd 守护程序以将本地文件系统导出为 volume。 glusterfs 客户端进程通过 TCP/IP,InfiniBand 或套接字直接协议连接到具有自定义协议的服务器,使用可堆叠转换器从多个远程服务器创建复合虚拟卷。默认情况下,文件是整体存储的,但也支持跨多个远程卷分割文件。然后,客户端主机可以通过 FUSE 机制使用自己的本机协议,使用内置服务器转换器的 NFS v3 协议或通过 libgfapi 客户端库访问 volume。
GlusterFS 的大多数功能都实现为转换器,包括基于文件的镜像和复制,基于文件的条带化,基于文件的负载均衡,卷故障转移,调度和磁盘缓存,存储配额以及具有用户可维护性的卷快照(自 GlusterFS 3.6 版本以来 )。
GlusterFS 服务器有意保持简单:它按原样导出现有目录,将其留给客户端转换器来构建存储。客户端本身是无状态的,不相互通信,并且期望具有彼此一致的转换器配置。 GlusterFS 依赖于弹性散列算法(elastic hashing algorithm),而不是使用集中式或分布式元数据模型。使用 GlusterFS 3.1 及更高版本,可以动态添加,删除或迁移卷,有助于避免配置一致性问题,并允许 GlusterFS 通过避免通常会影响更紧密耦合的分布式文件系统的瓶颈,在商用硬件上扩展到几PB 。
GlusterFS 通过各种复制选项提供数据可靠性和可用性:复制卷和地理复制。复制卷确保每个文件至少存在一个副本,因此如果一个文件出现故障,仍然可以访问数据。地理复制提供了主从模式的复制, volume 会跨不同的地理位置进行复制。这是异步发生的,在发生故障时备份数据非常有用。
https://docs.gluster.org/en/latest/Administrator%20Guide/GlusterFS%20Introduction/
https://en.wikipedia.org/wiki/Gluster
text gluster RHEL7
Executar todos os passos no nó gluster-0.example.com
subscription-manager register --username user-mmagnani --password senha
subscription-manager attach --pool=ssssssssssssssssssssss
subscription-manager repos --enable=rhel-7-server-rh-common-rpms
subscription-manager repos --disable=* --enable=rhel-7-server-rpms --enable=rh-gluster-3-for-rhel-7-server-rpms
yum install ntp -y
systemctl enable ntpd
systemctl start ntpd
yum install redhat-storage-server
firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent
firewall-cmd --zone=public --add-port=24009-24010/tcp --permanent
firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent
firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp --permanent
firewall-cmd --reload
systemctl enable glusterd
yum update -y
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
yum install heketi heketi-client -y
ssh-keygen -f /etc/heketi/heketi_key -t rsa -N ''
chown heketi:heketi /etc/heketi/heketi_key*
ssh-copy-id -i /etc/heketi/heketi_key.pub root@gluster-0.example.com
Editar o vi /etc/heketi/heketi.json e deixar o bloco sshexec como abaixo:
"sshexec": {
"keyfile": "/etc/heketi/heketi_key",
"user": "root",
"port": "22",
"fstab": "/etc/fstab",
"gluster_cli_timeout": 600
systemctl restart heketi
systemctl enable heketi
curl http://$(hostname):8080/hello
export HEKETI_CLI_SERVER=http://gluster-0.example.com:8080
Criar a topologia: topology.json
{
"clusters": [{
"nodes": [{
"node": {
"hostnames": {
"manage": [
"gluster-0.example.com"
],
"storage": [
"10.0.0.123"
]
},
"zone": 1
},
"devices": [
"/dev/sdb",
"/dev/sdc"
]
}
]
}]
}
heketi-cli topology load --json=topology.json
heketi-cli cluster list
Gluster finalizado!
No openshift com um usuario cluster-admin basta criar o storageClass
oc create -f glusterfs-storage-class.yaml
#######
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: gluster-fs
provisioner: kubernetes.io/glusterfs
parameters:
resturl: "http://gluster-0.example.com:8080"
restauthenabled: "false"
volumetype: none
#######
Torne o storeClass default:
oc patch storageclass gluster-fs -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Voce pode testar criando um projeto e na opção storage criar um novo volume utilizando o storageClass gluster-fs
以上是关于Gluster 简介的主要内容,如果未能解决你的问题,请参考以下文章
Gluster vs Ceph:开源存储领域的正面较量
text gluster RHEL7
text Gluster EasyWp
gluster分布式文件系统
CentOS7配置本地镜像及安装gluster服务
分布式储存_gluster