GlusterFS3.8的安装以及使用.未完待续

糜正业
2023-12-01

安装环境

Fedora 22和以上,这里用23

不使用自动化安装Puppet-Gluster+Vagrant,贵在理解每个组件。

前提:

各种相关文件:http://download.gluster.org/pub/gluster/glusterfs/LATEST/

术语链接:http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Terminologies/

相关术语:

Trusted Storage Pool:可信存储池。A storage pool is a trusted network of storage servers。当你开启第一台server,存储池由单个服务器组成。

ACLs:允许你赋予不同的权限给user或者group,即使他们不符合原始所属的user和group

brick:基本的存储单元。表现形式为:可信存储池中的server上的导出目录。

Cluster:集群就是多个个有关联的主机集合在一起工作,以一台主机的形式进行工作。

Distributed File System:允许多个客户端同时访问计算机网络上的数据的文件系统。

FUSE:用户空间文件系统。意为替各种传统的Unix系统(比如FreeBSD、OpenBSD、SUN公司的Solaris)加载核心模块,以使没权限的user可以不编辑核心代码而创建自己的核心代码。这是通过在用户空间中运行中的文件系统代码而实现的,而fuse模块只提供一个“桥梁”的实际内核接口。

glusterd:gcluste管理线程必须运行在可信任存储池的各个server上。

Geo-Replication:提供连续的,异步的和增量复制的服务从站点到另一个LAN,WAN甚至外网。
Metadata: 主要是描述数据 属性 (property)的 信息 ,用来支持如指示存储位置、 历史 数据、 资源 查找、文件记录等功能
POSIX:Portable Operating System Interface [for Unix] is the name of a family of related standards specified by the IEEE to define the application programming interface (API), along with shell and utilities interfaces for software compatible with variants of the Unix operating system. Gluster exports a fully POSIX compliant file system.GLUSTER完全符合POSIX标准的文件系统
Namespace:Namespace is an abstract container or environment created to hold a logical grouping of unique identifiers or symbols. Each Gluster volume exposes a single namespace as a POSIX mount point that contains every file in the cluster.
RRDNS:基于DNS的负载均衡.向一个主机名发出的入站请求可以被转发到多个IP地址上在DNS服务器中,可以为多个不同的地址配置同一个名字,这个数据被发送给其他名字服务器,而最终查询这个名字的客户机将在解析这个名字时随机使用其中一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,因此不同的客户访问的也就是不同地址的Web服务器,从而达到负载均衡的目的。
Userspace:运行在用户空间的应用并不直接与硬件互动。而是使用kernel维持连接。用户空间的应用比kernel空间的更加便捷。Gluster is a user space application.
Volume:brick的逻辑集合。gcluster管理操作发生在volume。
Vol file:.vol 文件是gcluster的进程配置文件。Volfiles will be usually located at /var/lib/glusterd/vols/volume-name/. Eg:vol-name-fuse.vol,export-brick-name.vol,etc.. 
Client:The machine which mounts the volume (this may also be a server).
Replicate:复制通常是为了使数据可用性的存储的冗余。

gclusterFS的架构:
①卷类型
支持不同类型的卷满足不一样的需求。有些类型的卷用来扩展存储大小。一些用来改善运行或者两者。
1,分布式卷
















安装:

双节点,一个VM叫server1,另一个server2。分别拥有两个虚拟硬盘,官方说是分离安装盘跟数据盘。

注意:自动生成的配置文件在/var/lib/glusterd,说是防止系统不稳定,减少损失什么的。还说分出一个区给日志文件,这里只是测试使用。就不搞了

②格式化和安装bricks:双节点均做

    mkfs.xfs -i size=512 /dev/sdb1
    mkdir -p /data/brick1
    echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab
    mount -a && mount
③安装FS:双节点均做

yum install glusterfs-server
service glusterd start
    service glusterd status
    glusterd.service - LSB: glusterfs server
           Loaded: loaded (/etc/rc.d/init.d/glusterd)
       Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
      Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
       CGroup: name=systemd:/system/glusterd.service
           ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
           ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
           └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...
④配置可信任池

server1做个动作:gluster peer probe server1

server2做个动作:gluster peer probe server1

或者直接用ip也行的。

注意:一旦做了池,只有可信任的成员才能感知(或者探测)新的servers进来了池。

A new server cannot probe the pool, it must be probed from the pool?有点难以理解,一新的server必须被这个池探测之后才能探测这个池?

⑤设置volume

server1和2均做:mkdir /data/brick1/gv0

选择任意其中一个server做:

gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
gluster volume start gv0

确认卷的开启状态:gluster volume info

如果报错:/var/log/glusterfs on one or both of the servers -usually in etc-glusterfs-glusterd.vol.log

⑥测试卷

使用其中一个server来挂载volume,准备个客户端client来挂载它吧。客户端还是需要做些做动作的:

   mount -t glusterfs server1:/gv0 /mnt
      for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done
检查挂载点:

ls -lA /mnt | wc -l
理论会看到文件x

接下来检查每个server的挂载点:

ls -lA /data/brick1/gv0
没有副本,而是文件平均散落在每个server











 类似资料: