使用gluster 文件系统
本指南介绍如何配置,操作和管理Gluster的文件系统(GlusterFS)
本指南是针对那些有兴趣在配置和管理GlusterFS系统管理员。
本指南假定您熟悉Linux操作系统,文件系统的概念,
GlusterFS概念和GlusterFS安装
GlusterFS是一个开源的集群文件系统能够扩展到PB级,能够处理数以千计的客户请求。 GlusterFS可以灵活组合与商品的物理,虚拟,和云资源,在的一小部分提供高度可用和高性能的企业级存储传统解决方案的成本。
GlusterFS集群能够借助infiniband RDMA和/或TCP / IP聚集不同节点的磁盘和内存资源,使用统一全局命名空间进行数据的管理。 GlusterFS是一种基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。
图1.1。虚拟化的云计算环境
GlusterFS是专为当今的高性能,虚拟化的云计算环境进行设计,不同于传统的数据中心,云计算环境需要支持多用户以及增长或收缩资源需求的能力。企业可以扩展容量,性能和可用性的需求,能够跨私有云,公共云和混合环境部署。GlusterFS已经在上千家企业进行生产应用,跨越媒体,医疗保健,政府,教育,Web 2.0和金融服务等领域。
安装GlusterFS后,您必须启动glusterd服务。该glusterd服务为Gluster进行弹性卷管理,监督glusterfs进程以及协调动态卷的操作,比如跨多个存储服务器进行无中断的添加和删除卷的操作。
本节将介绍如何通过以下方式启动glusterd服务:
•第2.1节“启动和手动停止glusterd”
•第2.2节,“自动启动glusterd”
注意:您必须在所有GlusterFS服务器中启动glusterd。
本节介绍如何手动启动和停止glusterd
•要手动启动glusterd,输入以下命令:
# /etc/init.d/glusterd start
•要手动停止glusterd,输入以下命令:
# /etc/init.d/glusterd stop
本节介绍如何配置系统在启动的时候自动启动glusterd服务
要配置基于Red Hat的系统在启动的时候自动启动glusterd服务,命令如下:
# chkconfig glusterd on
要配置基于Debian的系统在启动的时候自动启动glusterd服务,命令如下:
# update-rc.d glusterd defaults
要配置其他系统在启动的时候自动启动glusterd服务,将以下条目添加到/etc / rc.local文件中:
# echo "glusterd" >> /etc/rc.local
Gluster的控制台管理器是一个命令行实用程序,简化了存储环境的配置和管理。Gluster的控制台管理器类似于LVM(逻辑卷管理器),CLI或ZFS命令行界面,但它在多个存储服务器间进行同步。您可以使用Gluster的控制台管理器即使卷的已经被挂载或正在使用,Gluster的所有Gluster的服务器会自动同步卷的配置信息。
使用Gluster的控制台管理器可以创建新卷,启动卷,停止卷,即使在使用过程中您也可以添加brick到卷,从现有卷删除brick,以及改变卷设置(如某些传输特定的配置)以及其它操作。
您也可以使用这些命令来创建自动化脚本,以及使用这些命令作为一个API,允许与第三方应用的集成。
运行Gluster的控制台管理器
您可以通过调用命令或在交互模式在任何GlusterFS服务器上运行的Gluster的控制台管理器运行Gluster的命令,。您还可以远程通过SSH执行Gluster的命令。
•直接运行命令:
# gluster peer command
例如:
# gluster peer status
•要在交互模式下运行Gluster的控制台管理器
# gluster
您可以从控制台管理器提示符下执行Gluster的命令:
gluster> command
例如:检查连接的服务器的状态
#gluster
gluster> peer status
显示连接服务器的状态
对于任何安装了Gluster的服务器,检查所有受支持的命令,使用'gluster help’
在配置一个GlusterFS卷前您必须创建一个可信的存储池,可提供brick到存储池的服务器。存储池是存储服务器的可信网络。当您启动第一个服务器,存储池由单独的服务器组成。要添加额外的存储服务器到存储池,可以从已经是存储池的一部分的存储服务器使用probe命令。
注意:在第一台服务器/本地主机上不要自己添加自己的(probe)。
想要添加到存储池中的所有存储服务器必须运行glusterd服务。参见第2章,了解更多管理glusterd服务的信息。
要创建一个值得信赖的存储池,将服务器添加到受信任的存储池中
1. 用于创建存储池的主机名必须是能够被DNS解析的。还要确保防火墙没有阻止请求/回复。(iptables -F)
将服务器添加到存储池:
# gluster peer probe server
例如,要创建的四台服务器组成一个值得信赖的存储池,从server1添加三个服务器的存储池:
# glusterpeer probe server2
Probesuccessful
# glusterpeer probe server3
Probesuccessful
# glustereer probe server4
Probesuccessful
2. 在第一个服务器使用下面的命令验证对方身份:
状态显示中会显示与自己peer的节点而不会显示自己的相关信息,在当前节点的
/var/lib/glusterd/peer 目录中会有以其他节点uuid命名的文件。记录节点的uuid,state,主机名。
# glusterpeer status
Number ofPeers: 3
Hostname:server2
Uuid:5e987bda-16dd-43c2-835b-08b7d55e94e5
State:Peer in Cluster (Connected)
Hostname:server3
Uuid:1e0ca3aa-9ef7-4f66-8f15-cbc348f29ff7
State:Peer in Cluster (Connected)
Hostname:server4
Uuid:3e0caba-9df7-4f66-8e5d-cbc348f29ff7
State:Peer in Cluster (Connected)
从存储池中删除服务器:
# gluster peer detach server
例如,从受信任的存储池中删除server4:
# glusterpeer detach server4
Detach successful
卷是brick的逻辑集合,其中每个在可信存储池中的服务器上的brick为卷提供目录。大多数Gluster的管理操作均在卷上执行。
若要在您的存储环境中创建新卷,需要指定包含该卷的brick。在挂载一个新卷前,你必须先启动它。
•存储环境中支持创建下列类型的卷:
•分布式 - 分布文件到整个卷的主机上。分布式卷使用场景为大规模存储和冗余不重要或者由硬件/软件层来提供的。欲了解更多信息,请参见第5.1节“创建分布式卷”。
复制 - 复制卷中文件跨brick。在高可用性和高可靠性环境中使用复制卷。欲了解更多信息,请参见第5.2节“创建复制卷”。
条带卷 – 在bricks中进行数据的条带化。在高并发环境下访问非常大的文件应使用条带卷。欲了解更多信息,请参见第5.3节“创建条带卷”。
分布式条带卷 - 分布式条带卷,集群中有两个或多个节点的数据。您应该使用分布式带区卷,适合需要扩展存储和高并发环境下访问非常大的文件。欲了解更多信息,请参见第5.4节“创建分布式条带卷”。
•分布式复制 - 分布式复制会复制整个卷中文件跨越brick。分布式复制卷适合需要存储扩展和高可靠性。分布式复制卷在大多数环境也提供了更好的读取性能。欲了解更多信息,请参见第5.5节“创建分布式复制卷“。
分布式条带复制 - 分布式条带复制,使用分布式条带复制卷适合在高并发环境下的非常大的文件和要求并行访问的性能的场景。在此版本中,只支持 Map Reduce workloads。欲了解更多信息,请参见第5.6节“创建分布式条带复制卷”。
•条带复制 - 跨条纹砖复制复制卷的条纹数据集群中。为了获得最佳结果,适合在高并发环境下有非常大的文件和要求并行访问性能。在此版本中,只支持 Map Reduce workloads.。欲了解更多信息,请参见第5.7节“创建条带复制卷”。
要创建一个新卷
•创建一个新卷:
# gluster volume create NEW-VOLNAME [stripe COUNT |replica COUNT]
[transport [tcp | rdma | tcp,rdma]] NEW-BRICK1NEW-BRICK2 NEW-BRICK3...
例如,创建一个卷名叫test-volume包含server3:/exp3 and server4:/exp4:
# glustervolume create test-volume server3:/exp3 server4:/exp4
Creationof test-volume has been successful
Please startthe volume to access data.
分布式卷上的文件都随机分布在包含的brick中。使用分布式卷,扩展存储和冗余不重要的或由其它硬件/软件层提供。
注意:分布式卷盘/服务器故障可能会导致严重的数据丢失,因为目录的内容是随机分布在卷中
图5.1 分布式卷
要创建一个分布式卷
1. 建立如前面4.1节中描述的可信存储池,“将服务器添加到受信任的存储池”.
2. 创建分布式卷:
# gluster volume create NEW-VOLNAME [transport [tcp |rdma | tcp,rdma]]
NEW-BRICK...
例如,要创建一个由四个存储服务器组成的使用TCP的分布式卷:
# glustervolume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/
exp4
Creationof test-volume has been successful
Please startthe volume to access data.
(可选)可以显示卷信息:
# glustervolume info
VolumeName: test-volume
Type:Distribute
Status:Created
Number ofBricks: 4
Transport-type:tcp
Bricks:
Brick1:server1:/exp1
Brick2:server2:/exp2
Brick3:server3:/exp3
Brick4: server4:/exp4
例如,要建立在InfiniBand的分布式卷有四个存储服务器:
# glustervolume create test-volume transport rdma server1:/exp1 server2:/exp2 server3:/
exp3server4:/exp4
Creationof test-volume has been successful
Pleasestart the volume to access data.
如果未指定传输类型,TCP作为默认值。您还可以设置是否需要额外的选项,例如auth.allow或auth.reject。欲了解更多信息,请参见第7.1节,“配置卷选项”
请确保您启动卷,然后再尝试挂载它们,见第5.8节“启动卷”了解详情。
复制卷模式会在多个brick上创建文件的副本。您可以在需要高可用性和高可靠性中使用复制卷。
注意:每次添加的Brick的数量应该与副本数的数量相同,为了保证数据安全,需要卷中的brick在不同的服务器上。
图5.2 复制卷
要创建一个复制的卷
建立如前面4.1节中描述的可信存储池“,将服务器添加到受信任的存储池”。
创建复制卷:
#gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp |
rdma |tcp,rdma]] NEW-BRICK...
例如,要创建两个存储服务器复制的卷:
# glustervolume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
Creationof test-volume has been successful
Please startthe volume to access data.
如果未指定传输类型,TCP作为默认值。您还可以设置是否需要额外的选项,例如auth.allow或auth.reject。欲了解更多信息,请参见第7.1节,“调节卷选项”
数据会被条带化到所有节点。为了获得最佳结果,使用条带卷应该在高并发环境下访问非常大的文件的情形下。
注意:每次添加的brick的数量应该与条带卷数相等。
图5.3 条带卷
创建一个条带卷
1. 建立如前面4.1节中描述的可信存储池,“将服务器添加到受信任的存储池”。
2. 创建带区卷:
# gluster volume create NEW-VOLNAME [stripe COUNT][transport [tcp |
rdma | tcp,rdma]] NEW-BRICK...
例如,要在两个存储服务器创建一个条带卷:
# glustervolume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
Creationof test-volume has been successful
Pleasestart the volume to access data.
如果未指定传输类型,TCP作为默认值。您还可以设置是否需要额外的选项,例如auth.allow或auth.reject。欲了解更多信息,请参见第7.1节,“调整卷选项“
分布式条带文件在集群中的两个或更多个节点上。适用场景为对扩展存储和高并发要求比较高,尤其是访问非常大的文件
注意:每次添加的Brick的数量应该跟条带的数量相等
图5.4 分布式条带卷
要创建一个分布式的条带卷
1. 建立如前面4.1节中描述的可信存储池,“将服务器添加到受信任的存储池”
2. 创建分布式带区卷:
# gluster volume create NEW-VOLNAME [stripe COUNT][transport [tcp |
rdma | tcp,rdma]] NEW-BRICK...
例如,要创建一个跨越八个存储服务器分布式条带卷:
# glustervolume create test-volume stripe 4 transport tcp server1:/exp1 server2:/exp2
server3:/exp3 server4:/exp4 server5:/exp5server6:/exp6 server7:/exp7 server8:/exp8
Creationof test-volume has been successful
Please startthe volume to access data.
如果未指定传输类型,TCP作为默认值。您还可以设置是否需要额外的选项,例如auth.allow或auth.reject。欲了解更多信息,请参见第7.1节,“调整卷选项”
注意:请确保您启动卷,然后再尝试挂载它们,否则客户端操作后,挂载将挂起,见第5.8节“启动卷”了解详情。
卷中的文件会复制到整个brick中。适用场景是对存储扩展和高可靠性有要求。分布式复制卷在大多数环境提供了更好的读取性能。
砖的数量应该是在副本数与分布式的倍数。此外,brick指定的顺序对数据的保护有很大的影响。每个replica_count连续brick在列表中你给将形成一个副本集,所有的副本集组合成卷集。为了确保副本集成员不放在同一个节点上,列出每个服务器上的第一块brick,然后是第二个brick,以相同的顺序在每个服务器上,依此类推.
图5.5 分布式复制卷
要创建一个分布式的复制卷
1. 建立如前面4.1节中描述的可信存储池,”将服务器添加到受信任的存储池”。
2. 创建分布式的复制卷:
# glustervolume create NEW-VOLNAME [replica COUNT] [transport [tcp |rdma | tcp,rdma]]NEW-BRICK...
例如,四个节点的分布式(复制)的卷具有双向镜像:
# glustervolume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
server3:/exp3 server4:/exp4
Creationof test-volume has been successful
Pleasestart the volume to access data.
例如,要创建一个六节点分布式(复制)的卷具有双向镜像:
# glustervolume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
server3:/exp3 server4:/exp4 server5:/exp5server6:/exp6
Creationof test-volume has been successful
Please startthe volume to access data.
如果未指定传输类型,TCP作为默认值。您还可以设置是否需要额外的选项,例如auth.allow或auth.reject。欲了解更多信息,请参见第7.1节,“调整卷选项”
请确保您启动卷,然后再尝试挂载它们,否则客户端操作后,挂载将挂起,见第5.8节“启动卷”了解详情。
分布式条带复制卷复制brick集群中的条带分布数据。适用于高并发环境下的非常大的文件和性能的并行访问。在此版本中,仅支持Map Reduce workloads。
注意:brick的数目应该是条带数和副本数的乘积。
要创建条带化分布的复制卷
1. 建立如前面4.1节中描述的可信存储池“将服务器添加到受信任的存储池”。
使用以下命令创建分布式条带复制卷:
# glustervolume create NEW-VOLNAME [stripe COUNT] [replica COUNT][transport [tcp | rdma| tcp,rdma]] NEW-BRICK...
使用以下命令创建分布式条带复制卷
# glustervolume create test-volume stripe 2 replica 2 transport tcp server1:/exp1
server2:/exp2server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7
server8:/exp8
Creationof test-volume has been successful
Please startthe volume to access data.
如果未指定传输类型,TCP作为默认值。您还可以设置是否需要额外的选项,例如auth.allow或auth.reject。欲了解更多信息,请参见第7.1节,“调整卷选项”
注意:请确保您启动卷,然后再尝试挂载它们,否则客户端操作后,挂载将挂起,见第5.8
节“启动卷”了解详情。
在集群中以等量复制brick条带数据。为了获得最佳结果,适用场景为高并发环境下有非常大的文件和性能的并行访问。在此版本中,仅支持Map Reduce workloads。
注意:brick的数量应该是副本数和条带数复制乘积。
图5.6 条带复制卷
创建条带复制卷
1. 建立如前面4.1节中描述的可信存储池“将服务器添加到受信任的存储池”。
2.创建一个条带复制卷:
# glustervolume create NEW-VOLNAME [stripe COUNT] [replica COUNT]
[transport[tcp | rdma | tcp,rdma]] NEW-BRICK...
例如,要在四个存储服务器上创建条带复制卷:
# glustervolume create test-volume stripe 2 replica 2 transport tcp server1:/exp1
server2:/exp2 server3:/exp3 server4:/exp4
Creationof test-volume has been successful
Please startthe volume to access data.
要在六个存储服务器创建条带复制卷:
# glustervolume create test-volume stripe 3 replica 2 transport tcp server1:/exp1
server2:/exp2 server3:/exp3 server4:/exp4server5:/exp5 server6:/exp6
Creationof test-volume has been successful
Please startthe volume to access data.
如果未指定传输类型,TCP作为默认值。您还可以设置是否需要额外的选项,例如auth.allow或auth.reject。欲了解更多信息,请参见第7.1节,“调整卷选项”
注意:请确保您启动卷,然后再尝试安装它们,否则客户端操作后,挂载将挂起,见第5.8节“启动卷”了解详情。
你必须启动卷,然后再尝试挂载它们。
启动卷
•启动卷:
# gluster volume start VOLNAME
例如,启动test-volume:
# glustervolume start test-volume
Startingtest-volume has been successful
Gluster的卷可以通过多种方式来访问。人们可以使用Gluster的Native Client的方法,支持高并发,高性能和GNU/ Linux客户端透明故障切换。Gluster的出口使用NFS v3协议。
CIFS也可以通过使用Gluster本地挂载点为samba提供共享。
Gluster的本地客户端是在用户空间运行的fuse-base客户端。如果想使用GlusterFS的所有功能推荐使用Gluster的本机客户端访问卷。
本节介绍了Gluster的本机客户端,并说明如何在机器安装客户端。本节还介绍了如何挂载客户端(包括手动和自动)
Gluster的本地客户端依赖FUSE模块。为了确保FUSE模块被加载,执行以下命令:
1. 增加可加载的内核模块(LKM)到Linux内核:
# modprobe fuse
2. 验证fuse模块已经被加载
# dmesg |grep -i fuse
fuse init(API version 7.13)
6.1.1.1 在基于RPM版本上安装
在RPM版本的系统上安装Gluster的本地客户端
1. 在客户端上使用以下命令安装:
$ sudo yum -y install fusefuse-libs
2. 在客户端上下载最新版的glusterfs, glusterfs-fuse RPM,glusterfs包含GlusterFS和依赖库。glusterfs-fuse包含了挂载需要用到的fuse插件
注意:如果需要支持RDMA,必需的安装“glusterfs-RDMA'的RPM,。“glusterfs-RDMA'包含了InfiniBand互连RDMA传输模块。
下载地址http://bits.gluster.com/gluster/glusterfs/3.3.0/x86_64/.
3. 在客户端上安装Gluster的本机客户端
$ sudo rpm -i glusterfs-3.3.0-1.x86_64.rpm
$ sudo rpm -i glusterfs-fuse-3.3.0-1.x86_64.rpm
$ sudo rpm -i glusterfs-rdma-3.3.0-1.x86_64.rpm
6.1.1.2 在基于Debian的发行版上安装
在基于Debian的发行版安装Gluster的本机客户端
1. 下载最新的GlusterFS.Deb包
下载地址 http://www.gluster.org/download/.
2。卸载GlusterFSv3.1.x/v3.2.x(或更早版本)使用以下命令客户端:
$ sudo dpkg -r glusterfs
(可选) Run $sudo dpkg -purge glusterfs 删除配置文件
3. 使用以下命令在客户端上安装Gluster的本机客户端:
$ sudo dpkg -i glusterfs-$version.deb
例如:
$ sudo dpkg -i glusterfs-3.3.0.deb
6.1.1.3 通过源码安装
1. 从源代码编译和安装Gluster本地客户端
使用以下命令创建一个新的目录:
# mkdir glusterfs
# cd glusterfs
2. 下载源码
下载地址:http://www.gluster.org/download/.
3. 使用以下命令解压源代码:
# tar -xvzf glusterfs-3.3.0.tar.gz
4. 使用以下命令运行配置程序:
#./configure
...
GlusterFSconfigure summary
===========================
FUSEclient : yes
Infinibandverbs : yes
epoll IOmultiplex : yes
argp-standalone: no
fusermount: no
readline: yes
注意:上面显示的配置为举例,实际可能有所差别
5. 使用以下命令编译Gluster的本地客户端软件:
# make
# make install
6. 使用以下命令验证是否安装了正确版本的Gluster的本地客户端:
# glusterfs –-version
安装Gluster的本机客户端后,您需要挂载Gluster的卷来访问数据。有两种方法可以选择:
第6.1.2.1节,“手动挂载卷”
•6.1.2.2节,“自动挂载卷”
安装一个卷后,您可以使用在描述的过程测试安装的卷 第6.4节“测试已安装的卷”。
创建卷时选择的服务器名称应该是解析在客户机上。您可以使用适当的/ etc / hosts中的条目或DNS服务器来解析服务器名到IP地址。
手动挂载一个Gluster的卷
•要挂载卷,请使用以下命令:
# mount -t glusterfs HOSTNAME-OR-IPADDRESS:/VOLNAMEMOUNTDIR
例如:
# mount -t glusterfs server1:/test-volume/mnt/glusterfs
在mount命令中指定的服务器只用来获取Gluster的配置文件volfile描述的卷名。随后,该客户端将直接与在volfile提到的服务器(甚至可能没有包括用于安装一个)进行通信。
自动挂载一个Gluster的卷
•要挂载卷,编辑/ etc/ fstab文件,并添加下面一行:
HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR glusterfsdefaults,_netdev 0 0
例如:
server1:/test-volume /mnt/glusterfs glusterfsdefaults,_netdev 0 0
挂载选项
您可以使用mount-t glusterfs命令时指定下列选项,需要以逗号分隔所有选项。
backupvolfile-server=server-name
fetch-attempts=N(where N is number of attempts)
log-level=loglevel
log-file=logfile
direct-io-mode=[enable|disable]
ro (forreadonly mounts)
acl (forenabling posix-ACLs)
worm(making the mount WORM - Write Once, Read Many type)
selinux(enable selinux on GlusterFS mount)
例如:
# mount -t glusterfs -obackupvolfile-server=volfile_server2 ,fetch-attempts=2,log-level=WARNING,log-file=/var/log/gluster.logserver1:/test-volume /mnt/glusterfs
使用/ etc / fstab中,选项类似下面:
HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR glusterfsdefaults,_netdev,log-level=WARNING,log-file=/var/log/gluster.log 0 0
如果backupvolfile-server选项在挂载选项中添加了,在第一个volfileserver 失效的时候,指定的backupvolfile-server选项将作为volfileserver供客户端挂载
在取,fetch-attempts=N选项,挂载一个卷时获取卷中文件的次数,当DNS配置为轮训模式的时候此选项将是有好处的。
您可以使用NFS v3的访问到Gluster的卷
GlusterFS 3.3.0,现在包括网络锁定管理器(NLM)卷功能了。NLM上启用NFSv3的客户端应用程序做记录锁定的文件。NLM程序与NFS服务器进程会自动启动。
本节介绍如何使用NFS挂载Gluster的卷(手动和自动)。
您可以使用以下两种方法来挂载Gluster的卷:
•第6.2.1.1节,“使用NFS手动挂载卷”
•第6.2.1.2节,“使用NFS自动挂载卷”
挂载一个卷后,您可以使用第6.4节所述的步骤测试挂载的卷,“测试已挂载的卷”。
使用NFS手动挂载一个gluster的卷
•挂载卷请使用以下命令:
# mount -t nfs -o vers=3HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR
例如:
# mount -t nfs -o vers=3 server1:/test-volume/mnt/glusterfs
注意:Gluster的NFS服务器不支持UDP。如果NFS客户端使用的是默认使用的UDP连接,将出现以下消息:
requestedNFS version or transport protocol is not supported.
使用TCP进行连接
•添加以下选项来执行mount命令:
-o mountproto=tcp
例如:
# mount -o mountproto=tcp,vers=3 -t nfsserver1:/test-volume /mnt/glusterfs
从Solaris客户端挂载Gluster的NFS服务器
•使用以下命令:
# mount -o proto=tcp,vers=3nfs://HOSTNAME-OR-IPADDRESS:38467/VOLNAME
MOUNTDIR
例如:
# mount -o proto=tcp,vers=3 nfs://server1:38467/test-volume/mnt/glusterfs
使用NFS自动挂载一个Gluster的卷
•要挂载卷,编辑/ etc/ fstab文件,并添加下面一行:
HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR nfsdefaults,_netdev,vers=3 0 0
例如:
server1:/test-volume /mnt/glusterfs nfsdefaults,_netdev,vers=3 0 0
如果默认挂载NFS的传输是UDP的,请添加下面的fstab
server1:/test-volume /mnt/glusterfs nfsdefaults,_netdev,mountproto=tcp 0 0
自动挂载NFS
Gluster支持自动挂载NFS挂载的nix的标准方法。更新/etc/ auto.master文件和/ etc/ auto.misc文件里,并重新启动autofs服务。在此之后,每当用户或进程试图访问该目录将在后台进行挂载。
您可以使用CIFS使用MicrosoftWindows以及SAMBA客户机对卷进行访问。对于这种访问方法,samba需要安装在客户端上。您可以使用glusterfs的挂载点为供samba使用,然后使用CIFS协议挂载它。
注意:不支持使用Mac OS X的Finder CIFS访问,但是可以使用Mac OS X的命令行中使用CIFS访问Gluster的卷。
您可以使用以下两种方法来挂载Gluster卷:
•第6.3.1.2,“使用CIFS手动挂载卷”
•第6.3.1.3,“使用CIFS自动挂载卷”
挂载一个卷后,您可以使用第6.4节所述的步骤测试挂载的卷,“测试已挂载的卷”。
您也可以通过CIFS协议将Gluster的卷共享出去。
我们建议您使用Samba通过CIFS协议共享Gluster的卷。
通过CIFS协议共享卷
高挂Gluster的卷。有关挂载卷的更多信息,请参见第6.1.2节“挂载卷”。
设置Samba配置文件将挂载的Gluster的卷路径共享出去。
例如,如果一个Gluster的卷挂载到/ mnt/Gluster,你必须编辑smb.conf文件,以便通过CIFS共享这个目录。在编辑器中,打开smb.conf文件添加以下几行的简单配置:
[glustertest]
comment =For testing a Gluster volume exported through CIFS
path =/mnt/glusterfs
read only= no
guest ok= yes
保存更改并重启你的系统服务(/etc/init.d/smb[re]start).
为了能够从任意受信任的存储池中挂载,则必须在每个Gluster节点上重复这些步骤。对于更高级的配置,请参阅Samba文档。
您可以使用Windows的客户机通过CIFS手动挂载Gluster卷。
要使用CIFS手动挂载一个Gluster的卷
使用Windows资源管理器中,从菜单中选择工具>映射网络驱动器...。出现映射网络驱动器窗口。
选择使用的驱动器下拉列表中的驱动器盘符。
点击浏览,选择要映射到网络驱动器的卷,然后单击确定。
单击完成。
网络驱动器(映射到卷)出现在我的电脑窗口
另外,要使用CIFS手动挂载一个Gluster卷
单击开始>运行,输入以下内容:
\\SERVERNAME\VOLNAME
例如:
\\server1\test-volume
您可以使用MicrosoftWindows客户端的CIFS每次系统启动时自动挂载Gluster的卷
要使用CIFS自动挂载Gluster的卷
网络驱动器(映射到卷)出现在电脑窗口,并重新连接各
时间在系统启动。
1。使用Windows资源管理器中,从菜单中选择工具>映射网络驱动器.
出现网络驱动器窗口。
2。选择使用的驱动器下拉列表中的驱动器盘符。
3。点击浏览,选择要映射到网络驱动器的卷,然后单击确定。
4。点击登录时重新连接复选框。
5。单击Finish(完成)。
6.4 测试已挂载的卷
为了测试已挂载的卷
•使用以下命令:
# mount
如果Gluster的卷已成功挂载,mount命令输出将类似于以下示例:
server1:/test-volumeon /mnt/glusterfs type fuse.glusterfs
(rw,allow_other,default_permissions,max_read=131072
•使用以下命令:
# df -h
df命令的客户端上的输出将显示所有的brick聚合的存储空间:
# df -h /mnt/glusterfs
FilesystemSize Used Avail Use% Mounted on
server1:/test-volume28T 22T 5.4T 82% /mnt/glusterfs
•更改到该目录,并输入以下列出的内容:
# cdMOUNTDIR
# ls
•例如,
# cd/mnt/glusterfs
# ls
本节说明如何执行常见GlusterFS管理操作:
•第7.1节,“修改卷选项”
•第7.2节“扩展卷”
•第7.3节“收缩卷”
•第7.4节“迁移卷”
•第7.5节“再平衡卷”
•第7.6节“停止卷”
•第7.7节,“删除卷”
•第7.8节“触发自我修复的复制”
你可以修改卷选项,如果需要,即使集群处于联机状态并可用。
这是建议,如果每个卷有太多的brick或者有哪些已经使用了系统中所有的特权端口太多的服务设置server.allow不安全选项设置为ON。打开此选项允许端口接受/拒绝不安全的端口信息。因此,使用此选项仅当您的部署需要它。
修改卷选项
•使用以下命令修改卷选项:
#gluster volume set VOLNAME OPTION PARAMETER
例如,要指定测试卷性能高速缓存大小:
#gluster volume set test-volume performance.cache-size 256MB
Setvolume successful
下表列出了与它的描述和缺省值的卷选项:
这里给出的默认选项是随时改变,在任何给定的时间和适用于所有版本可能不一样。
选项 |
描述 |
默认值 |
可用的选项 |
auth.allow |
这应该被允许访问该卷的客户端的IP地址。 |
* (allow all) |
有效的IP地址,其中包括通配符模式,包括*,比如192.168.1。*,多个之间使用逗号分隔。 |
auth.reject |
这应该被拒绝访问卷的客户端的IP地址。 |
NONE (reject none) |
有效的IP地址,其中包括通配符模式,包括*,比如192.168.2。* |
client.grace-timeout |
指定要维持在客户端上的网络断开之后锁定状态的持续时间。 |
10 |
10 - 1800 secs |
cluster.self-heal-window-size |
指定每个文件最大数量的块在其自我修复的会同时发生 |
16 |
0 - 1025 blocks |
cluster.data-self-heal-algorithm |
指定的自我愈合的类型。如果设置该选项为“满”,整个文件被复制从源到目的地。如果该选项设置为“差异”,这是不同步的文件块被复制到目的地。复位采用启发式模型。如果该文件不上一个子卷,或者一个零字节文件存在(通过输入来创建自我修复)存在的全部内容,必须反正复制,所以没有使用的“差异”算法的好处。如果文件大小是大致相同的页面大小,整个文件可以读取和写入一些操作,这将是比“差异”,它具有读取校验和,然后读取和写入速度更快。 |
reset |
full | diff | reset |
cluster.min-free-disk |
指定的磁盘空间必须保持空闲的百分比。可能是不均匀的brick是有用的。 |
10% |
Percentage of required minimum space |
cluster.stripe-block-size |
指定将被读出或写入到条带单元大小。 |
128 KB (for all files) |
size in bytes |
cluster.self-heal-daemon |
允许您关闭积极的自我愈合的复制卷。 |
on |
On | Off |
diagnostics.brick-log-level |
修改brick的日志级别。 |
INFO |
DEBUG|WARNING| ERROR|CRITICAL| NONE|TRACE |
diagnostics.client-log-level |
改变客户端的日志级别。 |
INFO |
DEBUG|WARNING| ERROR|CRITICAL| NONE|TRACE |
diagnostics.latency-measurement |
有关每个操作的等待时间统计将被跟踪 |
off |
On | Off |
diagnostics.dump-fd-stats |
有关文件操作的统计信息将被跟踪。 |
off |
On | Off |
feature.read-only |
使您能够安装整个卷为只读所有客户端(包括NFS 客户端)访问它。 |
off |
On | Off |
features.lock-heal |
当网络断开使锁自愈 |
on |
On | Off |
features.quota-timeout |
出于性能原因,配额缓存在客户端的目录的大小。您可以设置超时表示目录的最大持续时间大小incache,从他们居住期间,他们被认为是有效的时间。 |
0 |
0 - 3600 secs |
geo-replication.indexing |
使用此选项可以自动同步变化从主的文件系统到slave。 |
off |
On | Off |
network.frame-timeout |
如果服务器不进行特定的操作做出响应,操作有足够的时间将被声明为死,。 |
1800 (30 mins) |
1800 secs |
network.ping-timeout |
持续时间,而客户端等待检查服务器是否响应。当一个ping超时发生时,有客户端和服务器之间的网络断开。由服务器代表客户持有的所有资源得到清理。当重新连接时,所有的资源都需要被重新收购之前,客户端可以在服务器上恢复其业务。此外,该锁将被收购和锁表更新。这重新连接是一个非常昂贵的操作,应该避免。 |
42 Secs |
42 Secs |
nfs.enable-ino32 |
对于32位的NFS客户端或不支持64应用程序 - 位inode号或大文件,请使用此选项从CLI使Gluster的NFS返回32位的inode号,而不是64位的inode号。应用程序将关闭开| OffTuning卷选项35选项说明默认值可用选项的好处是那些要么:*内置32位和运行在32位机器。*内置32位在64位系统。*内置64位,但使用内置32位的库,尤其适用于Python和Perl脚本。无论上述条件可能会导致应用程序在Linux上的NFS客户提供“参数无效”或“值太大,定义的数据类型”错误而失败。 |
off |
On | Off |
nfs.volume-access |
设置为指定分卷的访问类型。 |
read-write |
read-write|read-only |
nfs.trusted-write |
如果从客户端不稳定的写,稳定标志将返回到强制客户端无法发送COMMIT请求。在某些环境中,再加上复制GlusterFS设置,这个选项可以提高写入性能。此标志允许用户信任Gluster的复制逻辑的数据同步到磁盘,并在需要时恢复。如果接收到COMMIT请求将在默认的方式由fsyncing处理。稳定的写入是在一个同步的方式仍然处理。 |
off |
On | Off |
nfs.export-dir |
默认情况下,所有分卷的NFS导出为单独的出口。现在,这个选项允许您只导出在卷指定的子目录或子目录。也可以与nfs3.export-卷选项来限制出口只能通过此选项指定的子目录一起使用此选项。你必须提供一个绝对路径。 |
Enabled for all sub directories. |
Enable | Disable |
nfs.export-volumes |
启用/禁用整个出口量,而不是如果与nfs3.export-dir的结合,可以让设置只子目录出口 |
on |
On | Off |
nfs.rpc-auth-unix |
启用/禁用AUTH_UNIX认证类型。此选项是默认启用的更好的互操作性。但是,您可以禁用它,如果必要的。 |
on |
On | Off |
nfs.rpc-auth-null |
启用/禁用AUTH_NULL身份验证类型。这是不建议更改此选项的默认值。 |
on |
On | Off |
nfs.rpc-auth-allow |
允许地址和/或主机名的逗号分隔的列表来连接到服务器。默认情况下,所有客户机都不允许。这允许您定义全部出口量的一般规则。 |
Reject All |
IP address or Host name |
nfs.rpc-auth- -reject |
拒绝地址和/或主机名的逗号分隔的列表无法连接到服务器。默认情况下,所有的连接是不允许的。这允许您定义全部出口量的一般规则。 |
Reject All |
IP address or Host name |
nfs.ports-insecure |
允许从非特权端口的客户端连接。默认情况下只有特权端口是允许的。这是一个情况下,全局设置不安全的端口启用使用单一选项全部出口。 |
off |
On | Off |
nfs.addr-namelookup |
关闭名称查找使用此选项的传入客户端连接。在某些设置,名称服务器可以花费太长的时间回复造成的安装请求的超时DNS查询。使用此选项可在地址认证关闭名称查找。请注意,关闭这个功能会阻止您使用主机名在RPC-auth.addr。*过滤器。 |
on |
On | Off |
nfs.register-with- portmap |
对于那些需要运行多个NFS服务器系统,你需要防止多个从与portmap服务登记。使用此选项来关闭端口映射登记Gluster的NFS。 |
on |
On | Off |
nfs.port |
在需要Gluster的NFS来与一个非默认端口号相关联的系统使用此选项 |
38465- 38467 |
|
nfs.disable |
禁止nfs共享卷 |
off |
On | Off |
performance.write- behind-window-size |
大小每个文件后写缓冲区。 |
1 MB |
Write-behind cache size |
performance.io-thread- count |
IO传输中的线程数 |
16 |
0 - 65 |
performance.flush-behind |
如果此选项设置为ON时,指示后写译者在后台执行冲洗,通过返回的成功(或任何错误,如果任何以前写的都失败)应用程序甚至在冲洗被发送到后端文件系统。 |
On |
On | Off |
performance.cache- max-file-size |
设置最大文件大小的IO缓存转换缓存。可以使用KB,MB,GB,TB或PB(例如,6GB)的正常大小的描述。最大尺寸UINT64。 |
2 ^ 64 -1 bytes |
size in bytes |
performance.cache- min-file-size |
设置最小文件大小的IO缓存转换缓存。值同为“最大” 以上。 |
0B |
size in bytes |
performance.cache- refresh-timeout |
对于文件缓存的数据将被保留,直到“缓存刷新超时'秒,之后进行数据的重新验证。 |
1 sec |
0 - 61 |
performance.cache- size |
读缓存大小。 |
32 MB |
size in bytes |
server.allow-insecure |
允许从非特权端口的客户端连接。默认情况下只有特权端口是允许的。这是一个情况下,全局设置不安全的端口启用使用单一选项全部出口。 |
on |
On | Off |
server.grace-timeout |
指定要保留在服务器上的网络断开连接后,锁定状态的持续时间。 |
10 |
10 - 1800 secs |
server.statedump-path |
状态转储文件的位置。 |
/tmp directory of the brick |
New directory path |
您可以查看使用# glustervolume info VOLNAME command。欲了解更多信息,请参见第7.7节,“删除卷”。
您可以根据需要扩展卷,而集群处于联机状态并可用。例如,您可能要一块brick添加到分布式卷中,从而增加分布并增加了GlusterFS卷的容量。同样,你可能要一组brick添加到分布式复制卷,增加了GlusterFS卷的容量。
当扩展的分布式复制和分发带区卷,你需要添加一些brick数是副本或条带数的倍数。例如,为了扩大为2的副本数的分布式复制卷,你需要以2的倍数加砖(如4,6,8,等)。
要扩展卷
在集群中的第一个服务器,您要使用下面的命令来添加新brick服务器:
#gluster peer probe HOSTNAME
例如:
#gluster peer probe server4
Probesuccessful
使用以下命令添加brick:
#gluster volume add-brick VOLNAME NEW-BRICK
例如:
#gluster volume add-brick test-volume server4:/exp4
AddBrick successful
3。使用以下命令检查卷信息:
#gluster volume info
命令显示的信息与下面类似:
VolumeName: test-volume
Type:Distribute
Status:Started
Numberof Bricks: 4
Bricks:
Brick1:server1:/exp1
Brick2:server2:/exp2
Brick3:server3:/exp3
Brick4:server4:/exp4
重新平衡卷,以确保所有的文件被分发到新的brick。
您可以使用重新平衡命令,如第7.5节,“重新平衡卷”中所述。
你可以缩小卷,如果需要集群处于联机状态并可用。例如,您可能需要删除一块brick,由于硬件或网络故障的分布式卷无法访问的情况。
驻留在要删除的砖数据将不再在Gluster的挂载点访问。然而,只有配置信息被删除请注意 - 你可以根据需要继续直接从砖访问数据。
当收缩分布式复制和分发带区卷,你需要删除一些brick是副本或条带数的倍数。例如,要缩小分布式的条带卷2的条带数,你需要删除的brick是2(如4,6,8等)的倍数。另外,您要删除的brick块必须来自同一个分卷(同一副本或条带集)。
缩小卷
使用以下命令删除brick:
#gluster volume remove-brick VOLNAME BRICK start
例如, 删除server2:/exp2:
#gluster volume remove-brick test-volume server2:/exp2 start
Removingbrick(s) can result in data loss. Do you want to Continue? (y/n)
2。输入“y”确认操作。该命令将显示以下消息,表明brick删除操作成功启动:删除brick成功
3。(可选)使用以下命令查看删除的brick操作的状态:
#gluster volume remove-brick VOLNAME BRICK status
例如:
查看Server2上移除砖操作的状态:/EXP2brick:
#gluster volume remove-brick test-volume server2:/exp2 status
Node Rebalanced-files size scanned status
--------- ---------------- ---- ------------------
617c923e-6450-4065-8e33-865e28d9428f34 340 162 in progress
4。使用以下命令提交删除brick的操作:
#gluster volume remove-brick VOLNAME BRICK commit
例如:
查看Server2上删除brick操作的状态:/ EXP2brick
#gluster volume remove-brick test-volume server2:/exp2 commit
RemoveBrick successful
使用以下命令检查卷的信息:
#gluster volume info
#gluster volume info
VolumeName: test-volume
Type:Distribute
Status:Started
Numberof Bricks: 3
Bricks:
Brick1:server1:/exp1
Brick3:server3:/exp3
Brick4:server4:/exp4
重新平衡卷,以确保所有的文件被分发到新brick。
您可以使用重新平衡命令,如第7.5节,“再平衡卷”中所述。
您可以把一个bric中的数据迁移到另一个,根据需要可以在线迁移。
迁移卷
确认新的 brick,在这个例子中server5被成功添加到群集。
欲了解更多信息,请参见第4.1节“将服务器添加到受信任的存储池”
2、使用以下命令将数据从一个brick迁移到另一个:
#gluster volume replace-brick VOLNAME BRICKNEW-BRICK start
例如,将数据从server3:/ EXP3迁移到server5:/exp5在test-volume卷:
#gluster volume replace-brick test-volume server3:/exp3 server5:exp5 start
Replacebrick start operation successful
你需要在服务器上安装了FUSE包的服务器上运行的replace-brick命令
如果需要的暂停迁移操作,请使用以下命令:
#gluster volume replace-brick VOLNAME BRICK NEW-BRICK pause
例如:从server3:/ EXP3暂停迁移数据到server5:/exp5 test-volume:
#gluster volume replace-brick test-volume server3:/exp3 server5:exp5 pause
Replacebrick pause operation successful
4。要终止迁移操作,如果需要的话,请使用以下命令:
#gluster volume replace-brick VOLNAME BRICK NEW-BRICK abort
例如,要取消数据从server3:/exp3迁移到 server5:/exp5 在test-volume:
#gluster volume replace-brick test-volume server3:/exp3 server5:exp5 abort
Replacebrick abort operation successful
使用以下命令检查迁移操作的状态:
#gluster volume replace-brick VOLNAME BRICK NEW-BRICK status
例如、检查数据从server3:/exp3迁移到server5:/exp5的状态:
#gluster volume replace-brick test-volume server3:/exp3 server5:/exp5 status
CurrentFile = /usr/src/linux-headers-2.6.31-14/block/Makefile
Numberof files migrated = 10567
Migrationcomplete
status命令显示正在迁移的当前文件,当前迁移文件的总数量。迁移完成后,它会显示迁移完成。
迁移数据从一个brick迁移到另一个brick使用下面的命令:
#gluster volume replace-brick VOLNAME BRICK NEW-BRICK commit
例如:提交一个从server3:/exp3到 server5:/exp5的迁移
#gluster volume replace-brick test-volume server3:/exp3 server5:/exp5 commit
replace-brickcommit successful
7。通过使用下面的命令查看brick的迁移:
#gluster volume info VOLNAME
例如:检查server5:/exp5的迁移信息:
#gluster volume info test-volume
VolumeName: testvolume
Type:Replicate
Status:Started
Numberof Bricks: 4
Transport-type:tcp
Bricks:
Brick1:server1:/exp1
Brick2:server2:/exp2
Brick3:server4:/exp4
Brick4:server5:/exp5
The newvolume details are displayed.
新卷的详细显示。
在上面的例子中,以前有brick1,2,3,和4,现在brick3被替换为brick5。
扩大或缩小卷(分别使用add-brick和remove-brick命令)后,需要重新平衡服务器之间的数据。扩大或收缩后创建的新目录将自动均匀分布。对于所有现有的目录中在平衡可以修改分布式出现的不均衡。
本节介绍如何在您的存储环境重新平衡GlusterFS卷,以下常见情况:
•修正布局 - 修复布局的变化,使这些文件实际上可以去新添加的节点。欲了解更多信息,请参见第7.5.1节,“再平衡修复布局的更改”。
•修正布局和迁移数据 - 通过固定布局的变化和迁移现有数据重新平衡量。欲了解更多信息,请参见7.5.2节,“再平衡卷修复布局和迁移数据”。
修复布局是必要的,因为布局结构对于一个给定的目录是静态的,在新brick已被添加到现有卷的情景,在现有目录新建文件仍然会只在旧brick进行分布。. The # gluster volume rebalance VOLNAME fix-layout start 命令将修复的布局信息,以便这些文件也可以写入到新添加的节点。当发出此命令,所有这一切已经被缓存的文件统计信息将得到重新确认。
一个修复程序布局重新平衡将只修复布局的变化但不迁移数据。如果你要迁移现有的数据,使用# gluster volume rebalance VOLNAME start命令重新平衡数据
重新平衡的卷来解决文件布局的变化
•使用以下命令启动重新平衡操作在任意一个服务器上:
#gluster volume rebalance VOLNAME fix-layout start
例如:
#gluster volume rebalance test-volume fix-layout start
Startingrebalance on volume test-volume has been successful
扩大或缩小卷(分别使用add-brick和remove-brick命令)后,需要重新平衡服务器之间的数据。
重新平衡卷来解决布局和迁移现有数据
•在任意一个服务器中使用以下命令启动重新平衡操作:
#gluster volume rebalance VOLNAME start
例如:
#gluster volume rebalance test-volume start
Startingrebalancing on volume test-volume has been successful
•在任意一个服务器上使用下列命令强制启动迁移:
#gluster volume rebalance VOLNAME start force
例如:
#gluster volume rebalance test-volume start force
Startingrebalancing on volume test-volume has been successful
您可以根据需要显示有关重新平衡卷的操作的状态信息。
观察平衡卷的状态
检查平衡卷的状态,使用下列命令:
#gluster volume rebalance VOLNAME status
例如:
#gluster volume rebalance test-volume status
NodeRebalanced-files size scanned status
--------- ---------------- ---- ------------------
617c923e-6450-4065-8e33-865e28d9428f416 1463 312 in progress
完成重新平衡操作的时间取决于文件以及相应的卷上的文件大小。继续检查重新平衡状态,验证显示的重新平衡的文件或文件总的数量不断增加。
例如:再次运行状态的命令可能会显示类似以下的结果:
#gluster volume rebalance test-volume status
Node Rebalanced-files size scanned status
--------- ---------------- ---- ------------------
617c923e-6450-4065-8e33-865e28d9428f498 1783 378 in progress
重新平衡完成时状态将显示以下信息:
#gluster volume rebalance test-volume status
Node Rebalanced-files size scanned status
--------- ---------------- ---- ------------------
617c923e-6450-4065-8e33-865e28d9428f502 1873 334 completed
停止卷
使用以下命令停止卷:
#gluster volume stop VOLNAME
例如,停止test-volume:
#gluster volume stop test-volume
Stoppingvolume will make its data inaccessible. Do you want to continue? (y/n)
2、输入y确认操作。显示如下:
Stoppingvolume test-volume has been successful
删除一个卷
使用以下命令删除卷:
#gluster volume delete VOLNAME
例如,删除test-volume:
#gluster volume delete test-volume
Deletingvolume will erase all information about the volume. Do you want to continue?(y/
n)
2、输入y确认操作,命令显示结果如下:
Deletingvolume test-volume has been successful
在复制模块当中,以前必须手动触发自我修复,一旦一个节点离线或者重新在线,需要同步所有的副本。现在自我修复进程在后台运行,每隔10分钟进行一次自我修复。
您可以查看需要修复的文件列表,这是目前/以前修复的,,你可以手动触发自我修复整个卷上或只在文件中的文件列表的文件列表需要修复。
使用下列命令触发修复:
#gluster volume heal VOLNAME
例如:修复test-volume卷
#gluster volume heal test-volume
Healoperation on volume test-volume has been successful
触发卷上所有需要修复的文件
# glustervolume heal VOLNAME full
Healoperation on volume test-volume has been successful
查看需要修复的文件列表:
#gluster volume heal VOLNAME info
#gluster volume heal test-volume info
Brickserver1:/gfs/test-volume_0
Numberof entries: 0
Brickserver2:/gfs/test-volume_1
Numberof entries: 101
/95.txt
/32.txt
/66.txt
/35.txt
/18.txt
/26.txt
/47.txt
/55.txt
/85.txt
...
•观察自我愈合的文件列表:
#gluster volume heal VOLNAME info healed
例如,观察test-volume中自我修复的文件列表:
#gluster volume heal test-volume info healed
Brickserver1:/gfs/test-volume_0
Numberof entries: 0
Brickserver2:/gfs/test-volume_1
Numberof entries: 69
/99.txt
/93.txt
/76.txt
/11.txt
/27.txt
/64.txt
/80.txt
/19.txt
/41.txt
/29.txt
/37.txt
/46.txt
...
查看特定卷中修复失败的文件列表:
#gluster volume heal VOLNAME info failed
例如,观察test-volume中没有自我修复的文件
#gluster volume heal test-volume info failed
Brickserver1:/gfs/test-volume_0
Numberof entries: 0
Brickserver2:/gfs/test-volume_3
Numberof entries: 72
/90.txt
/95.txt
/77.txt
/71.txt
/87.txt
/24.txt
...
观察指定卷中处于分裂状态的文件
例如,观察处于分裂状态的文件。
#gluster volume heal test-volume info split-brain
Brickserver1:/gfs/test-volume_2
Numberof entries: 12
/83.txt
/28.txt
/69.txt
...
Brickserver2:/gfs/test-volume_2
Numberof entries: 12
/83.txt
/28.txt
/69.txt
...
地理复制提供一个连续的增量的,异步的,从一个节点复制到另外一个节点使用LANS或者互联网。
地理复制使用主从模式,即通过复制和镜像在以下节点间产生:
• Master – aGlusterFS volume
• Slave – a slavewhich can be of the following types:
•它可以表示为像文件:///路径/到/ dir文件,URL的本地目录。您可以
使用缩写形式,例如,/路径/到/目录。
•一个GlusterFS卷 - 从量可以是本地卷Gluster://localhosst:volname(简称 - :volname)或不同主机像Gluster的://localhost:volname(简称 - host:volname)。
所有类型能够被远程ssh通道访问的到,例如:ssh://root@remote
本节介绍地质复制,说明了各种部署方案,并说明如何配置系统以提供复制和镜像在您的环境。
下表列出了复制卷和地域复制之间的区别
复制卷 |
地理镜像 |
跨节点的镜像数据在集群 |
地理上分散的数据镜像集群 |
提供高可用性 |
确保备份数据的灾难恢复 |
同步复制(每个文件的修改操作在所有的brick被发送) |
异步复制(用于改变文件的定期检查和同步他们的检测差异) |
|
|
本节提供的地理复制部署方案的概述,介绍如何检查最低系统要求,并探讨共同部署方案。
•第8.2.1节,“探索地理的复制部署方案”
•第8.2.2节“地理复制部署概述”
•第8.2.3节“检查地理复制的最低要求”
•第8.2.4节“设置的地理复制的环境”
•第8.2.5节,“设置安全的地理复制slave环境”
8.2.1。探索地理的复制部署方案
地理复制提供了本地区域网络(LAN),广域网(WAN)中,并在互联网上增量复制服务。本节说明了最常见的部署场景地理复制,包括以下内容:
•地理复制通过LAN
•地理复制通过WAN
•地理复制在互联网上
•多点级联地质复制
地域复制通过局域网可以配置地理复制到镜像数据通过局域网。
地域复制通过WAN可以配置地质复制通过广域网复制数据。
地域复制互联网可以配置地质复制到镜像数据在互联网上。
多点级联地质复制您可以配置地质复制到镜像数据在多个站点级联的方式。
8.2.2。地域复制部署概述
部署地质复制包括以下步骤:
1。确认您的环境相匹配的最低系统要求。欲了解更多信息,
参见8.2.3节,“检查地质复制的最低要求”。
2。确定适当的部署方案。欲了解更多信息,请参见第8.2.1节,
“探索地球的复制部署方案”。
3。启动主从系统地理的复制,根据需要。欲了解更多信息,请参见
第8.3节“启动地理复制”。
8.2.3。检查地质复制的最低要求
在部署GlusterFS地质复制,请确认您的系统符合最低要求。
下表概述了主机和您的环境中从节点的最低要求:
组件 |
主节点 |
备份节点 |
Filesystem |
GlusterFS 3.2 or higher |
GlusterFS 3.2 or higher, ext3, ext4, or XFS (any other POSIX compliant file system would work, but has not been tested extensively) Python |
Python |
Python 2.4 (with ctypes external module), or Python 2.5 (or higher) |
Python 2.4 (with ctypes external module), or Python 2.5 (or higher) |
Secure shell |
OpenSSH version 4.0 (or higher) |
SSH2-compliant daemon |
FUSE |
GlusterFS supported versions |
GlusterFS supported versions |
|
|
|
8.2.4。设置地理复制的环境
时间同步
•所有服务器都是一个地域复制主卷的一部分,需要有自己的时钟同步。建议您设置NTP(网络时间协议)守护进程服务,以保持时钟同步。
例如:在一个复制卷,其中主的BRICK1为12.20小时和主砖2为12.10小时,10分钟的时间里滞后,这一时期之间的所有变化在砖块2可能与从文件同步过程中被忽视。
For moreinformation on setting up NTP daemon, see http://docs.redhat.com/docs/en-US/
Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/ch04s07.html.
要建立地理复制用于SSH
无密码登录要设置主机(如地域复制启动命令将予发行)和远程计算机(其中从属进程应该通过SSH推出)之间。
在那里地域复制启动命令将予发行的节点上,运行以下命令:
#ssh-keygen -f /var/lib/glusterd/geo-replication/secret.pem
按Enter键两次,以避免密码。
2、在所有的主节点上运行下面的命令:
#ssh-copy-id -i /var/lib/glusterd/geo-replication/secret.pem.pub
user@slavehost
8.2.5。设置环境的安全地域复制slave
您可以使用SSH,使主机被授予有限制地访问配置一个安全的slave。随着GlusterFS 3.3,你不需要指定在主端从配置参数。例如,主机不要求对从rsync的程序的位置,但slave必须确保rsync的是,主机使用SSH连接的用户的PATH中。的唯一信息是master和slave必须要解决的奴隶端用户帐户,奴隶的资源和主人的公钥。安全访问的从机可以使用下列选项来建立:
•限制远程命令执行
•使用Mountbroker slave
•使用基于IP的访问控制
向后兼容性
现有的地质复制环境将与GlusterFS3.3工作,除了以下:
•安全的重新配置的过程中对奴隶只影响GlusterFS实例。这些变化是透明的掌握与您可能要更改SSH目标,以一个非特权帐户的奴隶例外。
•下面是在无法提供向后兼容一些例外:
•用于指定从资源地理复制URL中包含下列特殊字符:
空间,*,[;
•slave没有glusterd运行。
8.2.5.1。限制远程命令执行
如果限制远程命令执行,那么从审计的命令从主来了,只有预先配置的命令是允许的。从属也只能访问其预配置要读取或由主操纵文件。
要限制远程命令执行:
1。确定从站的gsyncd助手实用程序的位置。此实用程序是安装在PREFIX / libexec目录/ glusterfs / gsyncd,其中前缀是glusterfs的一个编译时的参数。为
例如, - 前缀= PREFIX与下列共同的价值观的/usr,/ usr / local目录和/ opt / glusterfs / glusterfs_version configure脚本。
2。确保从主机调用以从该命令是通过奴隶的gsyncd工具通过。
您可以使用以下两个选项之一:
•使用绝对路径作为外壳为其主通过SSH连接帐户设置gsyncd。如果你需要使用一个特权帐户,然后设置它通过创建UID为0的新用户。
•使用命令执行到gsyncd设置密钥认证。您必须前缀主人的公钥的副本在从帐户的authorized_keys文件使用以下命令:
command=
Forexample, command="PREFIX/glusterfs/gsyncd" ssh-rsa AAAAB3Nza....
8.2.5.2。使用Mountbroker的slave
mountbroker是glusterd的一个新的服务。这项服务允许非特权进程拥有一个GlusterFS挂载。这是通过在glusterd volfile注册一个标签(和DSL(领域特定语言)的购股权)与glusterd完成。使用CLI,您可以发送一个装载请求glusterd和接收的别名(符号连接)到安装的卷。
非特权进程/剂使用glusterd的mountbroker服务设立一个辅助Gluster的坐骑。这种安装支架安装,以便只允许代理商提供给该特定体积的行政级别的访问。
要设置一个辅助Gluster的安装的代理:
创建一个新组。例如,geogroup。
2。创建一个非特权帐户。例如,geoaccount。使其geogroup的成员。
3。创建一个新的目录作为超级用户用作mountbroker的根。
4。改变目录的权限0711。
5。添加下列选项到glusterd volfile,位于/ etc / glusterfs /glusterd.vol,假设
奴隶Gluster的体积slavevol名称:
optionmountbroker-root /var/mountbroker-root
optionmountbroker-geo-replication.geoaccount slavevol
optiongeo-replication-log-group geogroup
A sampleglusterd volfile along with default options:
volumemanagement
type mgmt/glusterd
option working-directory /etc/glusterd
option transport-type socket,rdma
option transport.socket.keepalive-time 10
option transport.socket.keepalive-interval 2
option transport.socket.read-fail-log off
option mountbroker-root /var/mountbroker-root
option mountbroker-geo-replication.geoaccountslavevol
option geo-replication-log-group geogroup
end-volume
如果您在多台从卷,可以重复步骤2。对于每个从卷,并添加下列选项到volfile:
optionmountbroker-geo-replication.geoaccount2 slavevol2
optionmountbroker-geo-replication.geoaccount3 slavevol3
您可以通过提供从卷逗号分隔的列表(无空格)作为mountbroker - 地理replication.geogroup的参数相同的帐户(geoaccount)内添加多个从卷。您还可以有如下形式mountbroker - 地域复制的多个选项。*。这是推荐使用每个主机一个服务帐户。例如,如果有从站多个从卷主机MASTER1,MASTER2和Master3,然后重复步骤2创建从一个专门的服务用户为他们。每个(如geogroup1,geogroup2和geogroup3),然后添加以下相应的选项,
该volfile:
optionmountbroker-geo-replication.geoaccount1
slavevol11,slavevol12,slavevol13
optionmountbroker-geo-replication.geoaccount2 slavevol21,slavevol22
optionmountbroker-geo-replication.geoaccount3 slavevol31
现在设置MASTER1 ssh到geoaccount1@Slave
你必须重新启动glusterd以使配置更改生效。
8.2.5.3。使用基于IP的访问控制
您可以提供访问控制使用IP地址的slave资源。你可以使用的方法为Gluster的卷和和文件树的slave,但在本节中,我们的重点是文件树的slave。
要设置文件树的slave基于IP地址的访问控制:
设置的一般限制的文件树资源的可访问性:
#gluster volume geo-replication '/*' config allow-network ::1,127.0.0.1
这将拒绝从代理除本地发起请求的所有请求。
2。如果你想租用文件树在/数据/从树师父,请输入以下命令:
#gluster volume geo-replication /data/slave-tree config allow-network MasterIP
MasterIP是mastart的IP地址。如果在/数据/从树执行从主从代理请求将被接受。
如果主端网络配置不使从属承认主人的确切IP地址,你可以使用CIDR表示法指定子网掩码,而不是一个单一的IP地址作为MasterIP或CIDR子网甚至是逗号分隔的列表。
如果你想扩展基于IP的访问控制Gluster的slave,请使用以下命令:
#gluster volume geo-replication '*' config allow-network ::1,127.0.0.1
本节介绍如何配置和启动Gluster的地理复制在您的存储环境,并验证其是否工作正常。
•第8.3.1节“启动地质复制”
•第8.3.2节“验证成功部署”
•第8.3.3节,“显示地球的复制状态信息”
•第8.3.4节“配置地域复制”
•第8.3.5节“停止地质复制”
要启动Gluster的地理复制
•使用以下命令启动主机之间的地域复制:
#gluster volume geo-replication MASTER SLAVE start
例如:
#gluster volume geo-replication Volume1 example.com:/data/remote_dir start
Startinggeo-replication session between Volume1
example.com:/data/remote_dirhas been successful
您可能需要启动它之前配置的地理复制服务。欲了解更多信息,请参见第8.3.4节“配置地域复制”。
您可以使用Gluster的命令来验证Gluster的地理复制在您的环境的状态。
要验证身份Gluster的地理复制
•通过主机上发出以下命令验证状态:
#gluster volume geo-replication MASTER SLAVE status
例如:
#gluster volume geo-replication Volume1 example.com:/data/remote_dir
status
#gluster volume geo-replication Volume1 example.com:/data/remote_dir status
MASTER SLAVE STATUS
____________________________________ ____________
[email protected]:/data/remote_dir Starting....
您可以根据需要显示特定地域复制的主会话,或特定的主从会话或全部地缘复制会话状态信息。
要显示的地理复制状态信息
•使用以下命令所有地域复制会话的显示信息:
#gluster volume geo-replication Volume1 example.com:/data/remote_dir status
MASTERSLAVE STATUS
____________________________________ ____________
[email protected]:/data/remote_dir Starting....
•使用以下命令一个特定的主从会话的显示信息:
#gluster volume geo-replication MASTER SLAVE status
例如, 要显示 Volume1and example.com:/data/remote_dir
#gluster volume geo-replication Volume1 example.com:/data/remote_dir
status
VOLUME1和example.com之间的地理复制的状态
•属于主所有地域复制会话的显示信息
#gluster volume geo-replication MASTER status
例如,显示卷1 的信息
#gluster volume geo-replication Volume1 example.com:/data/remote_dir status
MASTER SLAVESTATUS
____________________________________ ____________
Volume1ssh://example.com:gluster://127.0.0.1:remove_volume OK
Volume1ssh://example.com:file:///data/remote_dir OK
一个会话的状态可以是以下四种之一:
•开始:这是地球复制会话的初始阶段,它保持此状态一分钟,以确保没有任何异常都存在。
•确定:本地域复制会话处于稳定状态。
•错误:该地域复制的会话已出现了一些异常,情况还需要进一步调查。欲了解更多信息,请参见第14章,故障排除GlusterFS部分。
•损坏:监视器线程会监管地域复制的会话已经死亡。通常不应该出现这种情况,如果它仍然存在联系红帽Supportwww.redhat.com /支持/。
要配置Gluster的地理复制
•在Gluster的命令行使用以下命令:
有关这些选项的更多信息,请参见第15章,命令参考。
例如:
要查看所有选项/值对的列表,请使用以下命令:
#gluster volume geo-replication Volume1 example.com:/data/remote_dir
Config
您可以使用Gluster的命令停止Gluster的地理复制(数据从主机到从机的同步)在您的环境。
要停止Gluster的地理复制
•停止主机之间使用以下命令地域复制:
#gluster volume geo-replication MASTER SLAVE stop
例如:
Forexample:
#gluster volume geo-replication Volume1 example.com:/data/remote_dir stop
Stoppinggeo-replication session between Volume1 and
example.com:/data/remote_dirhas been successful
请参见第15章,命令参考有关Gluster的命令的详细信息。
您可以从机将数据还原到主音量,每当主卷出现故障对于像硬件故障的原因。
本节中的示例假定您使用的是主音量(VOLUME1)具有以下配置:
machine1#gluster volume info
Type:Distribute
Status:Started
Numberof Bricks: 2
Transport-type:tcp
Bricks:
Brick1:machine1:/export/dir16
Brick2:machine2:/export/dir16
OptionsReconfigured:
geo-replication.indexing:on
将数据从主音量(VOLUME1)同步到从目录(example.com:/数据/ remote_dir)。
要查看此地域复制会话的状态运行主上运行以下命令:
#gluster volume geo-replication Volume1 [email protected]:/data/remote_dir status
MASTERSLAVE STATUS
____________________________________ ____________
[email protected]:/data/remote_dir OK
失败 之前
假设主卷有100个文件,并安装在/ mnt/ Gluster的客户端计算机(客户端)之一。运行客户端计算机上运行以下命令来查看文件的列表:
client#ls /mnt/gluster | wc –l
100
slave目录(example.com)将有相同的数据的主音量和同样可以通过查看从上运行以下命令:
example.com#ls /data/remote_dir/ | wc –l
100
失败后
如果砖(机2)中的一个失败,那么地球复制会话的状态从“OK”更改为“故障”。要查看此地域复制会话的状态运行主上运行以下命令:
#gluster volume geo-replication Volume1 [email protected]:/data/remote_dir status
MASTERSLAVE STATUS
____________________________________ ____________
[email protected]:/data/remote_dir Faulty
计算机2失败,现在你可以看到差异在主站和slave.Few文件之间的文件数目将由主音量失踪,但他们将仅适用于从如下图所示。
运行以下命令在客户端:
client #ls /mnt/gluster | wc –l
52
运行下面的命令在slave(example.com):
Example.com## ls /data/remote_dir/ | wc –l
100
从从机数据恢复
使用以下命令停止所有master的地理复制会话:
#gluster volume geo-replication MASTER SLAVE stop
例如:
machine1#gluster volume geo-replication Volume1
example.com:/data/remote_dirstop
Stoppinggeo-replication session between Volume1 &
example.com:/data/remote_dirhas been successful
在所有的重复#Gluster的卷地域复制MASTERSLAVE停止命令
主卷主动地缘复制会话。
通过使用以下命令替换在主故障砖:
#gluster volume replace-brick VOLNAME BRICK NEW-BRICK start
例如:
machine1#gluster volume replace-brick Volume1 machine2:/export/dir16 machine3:/export/
dir16start
Replace-brickstarted successfully
提交的数据使用以下命令迁移:
#gluster volume replace-brick VOLNAME BRICK NEW-BRICK commit force
例如:
machine1#gluster volume replace-brick Volume1 machine2:/export/dir16 machine3:/export/
dir16commit force
Replace-brickcommit successful
通过使用下面的命令查看卷信息核实砖的迁移:
#gluster volume info VOLNAME
例如:
machine1#gluster volume info
VolumeName: Volume1
Type:Distribute
Status:Started
Numberof Bricks: 2
Transport-type:tcp
Bricks:
Brick1:machine1:/export/dir16
Brick2:machine3:/export/dir16
OptionsReconfigured:
geo-replication.indexing:on
5。手动运行rsync命令到从机数据同步到主卷的客户端(挂载点)
例如:
example.com#rsync -PavhS --xattrs --ignore-existing /data/remote_dir/
client:/mnt/gluster
验证数据是通过使用以下命令同步:
对主卷,请运行以下命令:
Client #ls | wc –l
100
对从属运行以下命令:
example.com#ls /data/remote_dir/ | wc –l
100
现在,主卷与从目录同步。
6.从主机重新启动地域复制会话中使用以下命令来从站:
#gluster volume geo-replication MASTER SLAVE start
例如:
machine1#gluster volume geo-replication Volume1
example.com:/data/remote_dirstart
Startinggeo-replication session between Volume1 &
example.com:/data/remote_dirhas been successful
手动设置时间
如果您必须手动更改时间在您的brick,那么你必须在所有的brick设置统一的时间。
这就避免了在第8.2.4节中描述的超出的时间同步问题,“设置环境地质复制”。设定时间落后腐化地域复制指数,所以推荐的方式手动设置时间是:
使用以下命令停止主机和从机之间的地域复制:
#gluster volume geo-replication MASTER SLAVE stop
使用以下命令停止地域复制索引:
#gluster volume set MASTER geo-replication.indexing off
设置统一的时间对所有bricks.s
通过使用以下命令重新启动您的地理复制会话:
#gluster volume geo-replication MASTER SLAVE start
在一个系统上运行地理复制命令
这是明智的运行地域复制命令在可信存储游泳池以放松心情的砖块之一是因为,对于地域复制会话的日志文件将被存储在*服务器*,其中启动了地质复制开局。因此,它会更容易在需要时找到日志文件。
隔离
地质复制从操作不沙箱截至目前,并跑了作为一个特权服务。所以对于安全原因,建议由管理员在运行它的地缘复制从服务器创建一个沙箱环境(专用机/专用虚拟机/ chroot/容器类型的解决方案)。加强在这方面将在后续的次要版本。
在GlusterFS目录配额允许您设置在给定目录的磁盘空间使用限制。存储管理员可以在GlusterFS的目录级别设置给定目录配额限制控制磁盘空间利用率。如果管理员设定的音量的'/'配额限制,它可以被视为“音量配额”。 GlusterFS的配额实现可以有不同的配额限制设置上的任何目录,它可以嵌套。这在云部署是特别有用的,以方便实用
计费模式。注意:目前,仅支持硬限制。在这里,极限不能超过并尝试使用更多的磁盘空间超出设定的限制将被拒绝。
系统管理员还可以监控资源利用率,以限制存储依赖于他们在组织中角色的用户。
您可以在以下级别设置配额:
•目录级别 - 在目录级限制的使用
•卷 - 在卷中限制使用
您可以在即使没有创建目录设置磁盘限额。创建该目录之后立即执行的磁盘限额。有关设置磁盘限额,请参见第9.3节“设置,或更换磁盘限额”的详细信息。
您必须启用配额来设置磁盘限额。
要启用配额
•使用以下命令启用配额:
#gluster volume quota VOLNAME enable
例如,在测试卷启用配额:
#gluster volume quota test-volume enable
Quota isenabled on /test-volume
您可以禁用配额,如果需要的话。
要禁用配额:
•使用以下命令禁用配额:
#gluster volume quota VOLNAME disable
例如,要禁用配额测试卷:
#gluster volume quota test-volume disable
Quotatranslator is disabled on /test-volume
您可以在您的存储环境中创建新的目录,并设置磁盘限额或设置磁盘限额的现有目录。目录名称应该是相对于与出口目录的卷/
挂载点为“/”
要设置或更换磁盘限额
•使用以下命令设置磁盘限额:
#gluster volume quota VOLNAME limit-usage /directorylimit-value
例如,在测试卷,其中的数据是出口下的一个目录上的数据目录设置限制
目录:
# glustervolume quota test-volume limit-usage /data 10GB
Usagelimit has been set on /data
在多级目录层次结构,磁盘限额在整个层次最低将被视为申请强制执行。
您可以在所有在其上限制设置的目录显示磁盘限额信息。
要显示磁盘限额信息
•所有上限制设置,使用以下命令的目录显示磁盘限制信息:
#gluster volume quota VOLNAME list
例如,可以看到一组磁盘限制对测试卷:
#gluster volume quota test-volume list
Path__________Limit______Set Size
/Test/data10 GB 6 GB
/Test/data110 GB 4 GB
注意,这里列出的目录不是绝对的目录名,但相对路径卷的根目录(“/”)。例如,如果“测试卷'安装在'到/ mnt / glusterfs',则对于上面的例子中,'/test/data”的意思,“到/ mnt / glusterfs/test/data'
•在其上限值设定一个特定的目录显示磁盘限制的信息,请使用以下
命令:
#gluster volume quota VOLNAME list /directory name
例如,要看到测试卷/ data目录设置的限制:
#gluster volume quota test-volume list /data
Path__________Limit______SetSize
/Test/data10 GB 6 GB
出于性能原因,配额缓存在客户端的目录的大小。您可以设置超时指示目录大小的高速缓存中的最大有效时间,从他们居住的时间。
例如:如果有多个客户端写入到一个目录下,有机会,其他一些客户可能会写,直到配额限制被超过。然而,这个新的文件大小可能不会反映在客户端中,直到缓存大小条目会因为超时而失效。如果发生写入此客户端上这个时间过程中,他们被允许,即使他们会导致超出配额的限制,因为在高速缓存大小是不同步的实际大小。当超时发生时,在高速缓存的大小是由服务器更新,会同步并没有进一步的写操作将被允许。零超时将强制目录的大小取从服务器每次修改文件中的数据,将有效地禁止在客户端目录大小的缓存操作。
要更新内存缓存大小
•更新使用以下命令将内存缓存大小:
#gluster volume set VOLNAME features.quota-timeout value
例如,要更新内存缓存大小为每5秒测试卷:
#gluster volume set test-volume features.quota-timeout 5
Setvolume successful
您可以删除组磁盘限额,如果你不想配额了。
要删除磁盘限额
•删除磁盘限额使用以下命令在一个特定的目录设置:
#gluster volume quota VOLNAME remove /directory name
例如,要取消对test-volume卷/ data目录的磁盘限额:
#gluster volume quota test-volume remove /data
Usagelimit set on /data is removed
您可以监视不同参数的GlusterFS卷。监控量有助于在GlusterFS体积容量规划和性能调整任务。利用这些信息,可以识别并解决问题。
您可以使用音量顶部和个人的命令来查看性能,并确定一个量的每块砖的瓶颈/热点。这有助于系统管理员以获得重要的性能信息时的性能有待探讨。
您也可以执行卷的砖工艺和NFS服务器进程的statedump,并且还查看卷状态和卷信息。
GlusterFS卷档案命令提供了一个接口来获取每砖I / O信息为卷中的每个文件操作(FOP)。每砖信息有助于确定存储系统中的瓶颈。
本节介绍如何通过执行以下操作来运行GlusterFS卷档案命令:
•第10.1.1节“开始分析”
•第10.1.2节,“显示I / O信息”
•第10.1.3节,“停止分析”
您必须启动剖析,以查看文件操作信息每块brick。
要开始分析:
•使用以下命令启动分析:
#gluster volume profile VOLNAME start
例如,要启动分析的测试卷:
#gluster volume profile test-volume start
Profilingstarted on test-volume
如果在分析该卷上启动时,下列额外的选项将显示在卷信息:
diagnostics.count-fop-hits:on
diagnostics.latency-measurement:on
您可以查看每块砖的I / O信息。
要显示I / O信息:
•显示使用以下命令的I/ O信息:
#gluster volume profile VOLNAME info
例如,要看到测试卷的I/ O信息:
#gluster volume profile test-volume info
Brick:Test:/export/2
CumulativeStats:
Block1b+ 32b+ 64b+
Size:
Read: 0 0 0
Write: 908 28 8
Block128b+ 256b+ 512b+
Size:
Read: 0 6 4
Write: 5 23 16
Block1024b+ 2048b+ 4096b+
Size:
Read: 0 52 17
Write: 15 120 846
Block8192b+ 16384b+ 32768b+
Size:
Read: 52 8 34
Write: 234 134 286
Block65536b+ 131072b+
Size:
Read: 118 622
Write: 1341 594
%-latencyAvg- Min- Max- calls Fop
latency Latency Latency
___________________________________________________________
4.821132.28 21.00 800970.00 4575 WRITE
5.70156.47 9.00 665085.00 39163 READDIRP
11.35315.02 9.00 1433947.00 38698 LOOKUP
11.881729.34 21.00 2569638.00 7382 FXATTROP
47.35104235.02 2485.00 7789367.00 488 FSYNC
------------------
------------------
Duration: 335
BytesRead: 94505058
BytesWritten: 195571980
您可以停止剖析音量,如果你不再需要分析信息。
要停止剖析
•使用以下命令停止剖析:
#gluster volume profile VOLNAME stop
例如,要分析停止对测试卷:
#gluster volume profile test-volume stop
Profilingstopped on test-volume
GlusterFS卷top命令允许你查看喜欢读glusterfs砖“的性能指标,写,打开文件调用,文件读取调用,文件写入调用,目录打开电话,和目录真正的电话。
top命令显示最多100个结果。
本节将介绍如何运行和查看结果如下GlusterFS顶部命令:
•第10.2.1节,“查看打开的fd计数和最大的fd计数”
•第10.2.2节,“查看文件最高读取调用”
•第10.2.3节,“查看文件最高写入调用”
•第10.2.4节,“查看目录上最高的open调用”
•第10.2.5节,“查看最高的读取调用上的目录”
•第10.2.6节,“每个砖查看读取性能一览表”
•第10.2.7,“每个砖查看写入性能一览表”
您可以查看该砖,当前打开的fd数(是目前最开通和计数文件列表),最大开放的fd数(即是当前打开的和最大文件数计数的文件数在开任何给定的时间点上,由于服务器启动并运行)。如果未指定砖的名称,则所有属于该卷的砖块开放FD指标将被显示。
要查看开放的fd数和最大的fd数:
•视图中打开的fd数量以及使用下面的命令最大的fd数:
#gluster volume top VOLNAME open [brick BRICK-NAME] [list-cnt cnt]
例如,要查看打开的fd数和砖服务器上最大的fd数:/测试卷,并列出前10名的open调用出口:
#gluster volume top test-volume open brick server:/export/ list-cnt 10
Brick:server:/export/dir1
Currentopen fd's: 34 Max open fd's: 209
==========Openfile stats========
openfile name
callcount
2/clients/client0/~dmtmp/PARADOX/
COURSES.DB
11/clients/client0/~dmtmp/PARADOX/
ENROLL.DBChapter 10. Monitoring your GlusterFSWorkload
70
11/clients/client0/~dmtmp/PARADOX/
STUDENTS.DB
10/clients/client0/~dmtmp/PWRPNT/
TIPS.PPT
10/clients/client0/~dmtmp/PWRPNT/
PCBENCHM.PPT
9/clients/client7/~dmtmp/PARADOX/
STUDENTS.DB
9/clients/client1/~dmtmp/PARADOX/
STUDENTS.DB
9/clients/client2/~dmtmp/PARADOX/
STUDENTS.DB
9/clients/client0/~dmtmp/PARADOX/
STUDENTS.DB
9/clients/client8/~dmtmp/PARADOX/
STUDENTS.DB
您可以查看每一块砖最高读取调用。如果未指定砖的名称,则默认情况下,将显示为100的文件列表。
要查看文件最大读取调用:
•使用以下命令查看文件最大读取调用:
#gluster volume top VOLNAME read [brick BRICK-NAME] [list-cnt cnt]
例如,要查看最高读取砖服务器上调用:/测试批量出口:
#gluster volume top test-volume read brick server:/export list-cnt 10
Brick:server:/export/dir1
==========Readfile stats========
readfilename
callcount
116/clients/client0/~dmtmp/SEED/LARGE.FIL
64/clients/client0/~dmtmp/SEED/MEDIUM.FIL
54/clients/client2/~dmtmp/SEED/LARGE.FIL
54/clients/client6/~dmtmp/SEED/LARGE.FIL
54/clients/client5/~dmtmp/SEED/LARGE.FIL
54/clients/client0/~dmtmp/SEED/LARGE.FIL
54/clients/client3/~dmtmp/SEED/LARGE.FIL
54/clients/client4/~dmtmp/SEED/LARGE.FIL
54/clients/client9/~dmtmp/SEED/LARGE.FIL
54/clients/client8/~dmtmp/SEED/LARGE.FIL
您可以查看这对每一块砖最高的文件写入调用的文件列表。如果未指定砖的名称,则默认情况下,将显示为100的文件列表。
要查看文件最高写入调用:
•查看最高的文件写的调用使用以下命令:
#gluster volume top VOLNAME write [brick BRICK-NAME] [list-cnt cnt]
例如,要查看砖服务器上的最高写入调用:/测试批量出口:
#gluster volume top test-volume write brick server:/export list-cnt 10
Brick:server:/export/dir1
ountfilename
83/clients/client0/~dmtmp/SEED/LARGE.FIL
59/clients/client7/~dmtmp/SEED/LARGE.FIL
59/clients/client1/~dmtmp/SEED/LARGE.FIL
59/clients/client2/~dmtmp/SEED/LARGE.FIL
59/clients/client0/~dmtmp/SEED/LARGE.FIL
59/clients/client8/~dmtmp/SEED/LARGE.FIL
59/clients/client5/~dmtmp/SEED/LARGE.FIL
59/clients/client4/~dmtmp/SEED/LARGE.FIL
59/clients/client6/~dmtmp/SEED/LARGE.FIL
59/clients/client3/~dmtmp/SEED/LARGE.FIL
您可以查看这对每块砖的目录中最高的open调用文件列表。如果未指定砖的名称,则所有属于该卷砖的指标将被显示。
要查看每个目录打开电话列表
•使用以下命令在每个目录上打开调用视图列表:
#gluster volume top VOLNAME opendir [brick BRICK-NAME] [list-cnt cnt]
例如,要查看砖服务器上打开调用://导出的测试卷:
#gluster volume top test-volume opendir brick server:/export list-cnt 10
砖:服务器:/export/dir1
==========Directoryopen stats========
Opendircount directory name
1001/clients/client0/~dmtmp
454/clients/client8/~dmtmp
454/clients/client2/~dmtmp
454/clients/client6/~dmtmp
454/clients/client5/~dmtmp
454/clients/client9/~dmtmp
443/clients/client0/~dmtmp/PARADOX
408/clients/client1/~dmtmp
408/clients/client7/~dmtmp
402/clients/client4/~dmtmp
您可以查看这对每一块砖最高目录读取调用的文件列表。如果未指定砖的名称,则所有属于该卷砖的指标将被显示。要查看对每一块砖最高读取目录列表的调用
•最高的目录视图列表读取使用以下命令在每块砖电话:
#gluster volume top VOLNAME readdir [brick BRICK-NAME] [list-cnt cnt]
例如,要查看目录的最高读取测试卷砖服务器:/出口调用:
#gluster volume top test-volume readdir brick server:/export list-cnt 10
Brick:server:/export/dir1
==========Directoryreaddirp stats========
readdirpcount directory name
1996/clients/client0/~dmtmp
1083/clients/client0/~dmtmp/PARADOX
904/clients/client8/~dmtmp
904/clients/client2/~dmtmp
904/clients/client6/~dmtmp
904/clients/client5/~dmtmp
904/clients/client9/~dmtmp
812/clients/client1/~dmtmp
812/clients/client7/~dmtmp
800/clients/client4/~dmtmp
您可以查看每一块砖的吞吐量文件读取。如果未指定砖的名称,则所有属于该卷砖的指标将被显示。输出将被读取吞吐量。
==========Readthroughput file stats========
readfilename Time
through
put(MBp
s)
2570.00/clients/client0/~dmtmp/PWRPNT/ -2011-01-31
TRIDOTS.POT 15:38:36.894610
2570.00/clients/client0/~dmtmp/PWRPNT/ -2011-01-31
PCBENCHM.PPT 15:38:39.815310
2383.00/clients/client2/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:52:53.631499
2340.00/clients/client0/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:38:36.926198
2299.00/clients/client0/~dmtmp/SEED/ -2011-01-31
LARGE.FIL 15:38:36.930445
2259.00/clients/client0/~dmtmp/PARADOX/ -2011-01-31
COURSES.X04 15:38:40.549919
2221.00/clients/client0/~dmtmp/PARADOX/ -2011-01-31
STUDENTS.VAL 15:52:53.298766
2221.00/clients/client3/~dmtmp/SEED/ -2011-01-31
COURSES.DB 15:39:11.776780
2184.00/clients/client3/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:39:10.251764
2184.00/clients/client5/~dmtmp/WORD/ -2011-01-31
BASEMACH.DOC 15:39:09.336572
这个命令将启动一个日指定计数和块大小,并测量相应的吞吐量。
要查看每块砖的读取性能列表
•使用以下命令在每块砖的读取性能视图列表:
#gluster volume top VOLNAME read-perf [bs blk-size count count] [brick
BRICK-NAME][list-cnt cnt]
例如,要查看的读取性能砖服务器上://导出的测试卷,256块大小
数1,并列出数10:
# glustervolume top test-volume read-perf bs 256 count 1 brick server:/
export/list-cnt 10
Brick:server:/export/dir1 256 bytes (256 B) copied, Throughput: 4.1 MB/s
==========Readthroughput file stats========
readfilename Time
throughput(MBp
s)
2912.00 /clients/client0/~dmtmp/PWRPNT/-2011-01-31
TRIDOTS.POT 15:38:36.896486
2570.00/clients/client0/~dmtmp/PWRPNT/ -2011-01-31
PCBENCHM.PPT 15:38:39.815310
2383.00/clients/client2/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:52:53.631499
2340.00/clients/client0/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:38:36.926198
2299.00/clients/client0/~dmtmp/SEED/ -2011-01-31
LARGE.FIL 15:38:36.930445
2259.00/clients/client0/~dmtmp/PARADOX/ -2011-01-31
COURSES.X04 15:38:40.549919
2221.00 /clients/client9/~dmtmp/PARADOX/-2011-01-31
STUDENTS.VAL 15:52:53.298766
2221.00/clients/client8/~dmtmp/PARADOX/ -2011-01-31
COURSES.DB 15:39:11.776780
2184.00/clients/client3/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:39:10.251764
2184.00/clients/client5/~dmtmp/WORD/ -2011-01-31
BASEMACH.DOC 15:39:09.336572
您可以查看吞吐量对每块砖的文件写入列表。如果未指定砖的名称,则所有属于该卷砖的指标将被显示。输出将被写入吞吐量。
这个命令将启动一个日指定计数和块大小,并测量相应的吞吐量。要查看每个砖写入性能列表:
•使用以下命令对每一块砖写入性能视图列表:
#gluster volume top VOLNAME write-perf [bs blk-size count count] [brick
BRICK-NAME][list-cnt cnt]
例如,要查看写入性能上的砖服务器://导出的测试卷,数1和表计10256块大小:
#gluster volume top test-volume write-perf bs 256 count 1 brick server:/
export/list-cnt 10
Brick:server:/export/dir1
256bytes (256 B) copied, Throughput: 2.8 MB/s
==========Writethroughput file stats========
writefilename Time
throughput
(MBps)
1170.00/clients/client0/~dmtmp/SEED/ -2011-01-31
SMALL.FIL 15:39:09.171494
1008.00/clients/client6/~dmtmp/SEED/ -2011-01-31
LARGE.FIL 15:39:09.73189
949.00 /clients/client0/~dmtmp/SEED/-2011-01-31
MEDIUM.FIL 15:38:36.927426
936.00/clients/client0/~dmtmp/SEED/ -2011-01-31
LARGE.FIL 15:38:36.933177
897.00/clients/client5/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:39:09.33628
897.00/clients/client6/~dmtmp/SEED/ -2011-01-31
MEDIUM.FIL 15:39:09.27713
885.00/clients/client0/~dmtmp/SEED/ -2011-01-31
SMALL.FIL 15:38:36.924271
528.00/clients/client5/~dmtmp/SEED/ -2011-01-31
LARGE.FIL 15:39:09.81893
516.00/clients/client6/~dmtmp/ACCESS/ -2011-01-31
FASTENER.MDB 15:39:01.797317
您可以根据需要显示特定卷或所有卷的信息。
要显示卷信息
•关于使用以下命令比容显示的信息:
#gluster volume info VOLNAME
例如,要显示有关测试卷的信息:
#gluster volume info test-volume
VolumeName: test-volume
Type:Distribute
Status:Created
Numberof Bricks: 4
Bricks:
Brick1: server1:/exp1
Brick2:server2:/exp2
Brick3:server3:/exp3
Brick4:server4:/exp4
•使用以下命令显示所有卷的信息:
#gluster volume info all
#gluster volume info all
VolumeName: test-volume
Type:Distribute
Status:Created
Numberof Bricks: 4
Bricks:
Brick1:server1:/exp1
Brick2:server2:/exp2
Brick3:server3:/exp3
Brick4:server4:/exp4
VolumeName: mirror
Type:Distributed-Replicate
Status:Started
Numberof Bricks: 2 X 2 = 4
Bricks:
Brick1:server1:/brick1
Brick2:server2:/brick2
Brick3:server3:/brick3
Brick4:server4:/brick4
VolumeName: Vol
Type:Distribute
Status:Started
Numberof Bricks: 1
Bricks:
Brick:server:/brick6
Statedump是,通过它你可以得到所有的内部变量和状态的详细机制
在发出command.You的时间glusterfs过程可以执行砖的statedumps
流程和NFS服务器使用statedump命令卷的过程。下列选项
可以被用来确定哪些信息是要倾倒:
•纪念品 - 转储砖的内存使用率和内存池的详细信息。
•IOBUF - 转储IOBUF砖的细节。
•私法 - 转储装载的翻译家私人信息。
•callpool - 转储卷的等待接听的电话。
•FD - 转储卷的打开的fd表。
•i节点 - 转储卷的索引节点表。
要显示音量statedump
•卷或NFS服务器使用以下命令显示statedump:
#gluster volume statedump VOLNAME [nfs] [all|mem|iobuf|callpool|priv|fd|
inode]
例如,要显示的测试体积statedump:
#gluster volume statedump test-volume
Volumestatedump successful
该statedump文件在/ tmp目录或使用server.statedump路径音量选项的目录组砖服务器上创建的。转储文件的命名规则是
•默认的,该statedump的输出被存储在该特定服务器上的/ tmp/
#gluster volume set VOLNAME server.statedump-path path
例如,要改变测试卷的statedump文件的位置:
#gluster volume set test-volume server.statedump-path/usr/local/var/log/glusterfs/dumps/
Setvolume successful
您可以查看使用以下命令statedump文件的改变路径:
#gluster volume set test-volume server.statedump-path/usr/local/var/log/glusterfs/dumps/
Setvolume successful
您可以查看使用以下命令statedump文件的改变路径:
#gluster volume info VOLNAME
您可以根据需要显示特定卷,砖或所有卷的状态信息。状态信息可以被用于理解砖的当前状态,nfs的过程,以及整体的文件系统。状态信息也可以被用来监控和调试卷信息。您可以查看连同以下资料卷的状态:
•详细信息 - 显示关于砖的附加信息。
•客户端 - 显示连接到卷的客户端列表。
•灰熊 - 显示内存使用情况和砖内存池的详细信息。
•i节点 - 显示音量的i节点表。
•FD - 显示打开的fd(文件描述符)的体积表。
•callpool - 显示音量的等待接听的电话。
要显示卷的状态
•关于使用以下命令比容显示的信息:
#gluster volume status [all|VOLNAME [BRICKNAME]] [detail|clients|mem|
inode|fd|callpool]
例如,要显示有关测试卷的信息:
#gluster volume status test-volume
STATUSOF VOLUME: test-volume
BRICKPORT ONLINE PID
--------------------------------------------------------
arch:/export/124009 Y 22445
--------------------------------------------------------
arch:/export/224010 Y 22450
•使用以下命令显示所有卷的信息:
#gluster volume status all
#gluster volume status all
STATUSOF VOLUME: volume-test
BRICKPORT ONLINE PID
--------------------------------------------------------
arch:/export/424010 Y 22455
STATUSOF VOLUME: test-volume
BRICKPORT ONLINE PID
arch:/export/124009 Y 22445
--------------------------------------------------------
arch:/export/224010 Y 22450
•显示有关使用以下命令砖附加信息:
#gluster volume status VOLNAME detail
例如,要显示有关的测试卷的砖块附加信息:
#gluster volume status test-volume details
STATUSOF VOLUME: test-volume
-------------------------------------------
Brick :arch:/export/1
Port :24009
Online :Y
Pid :16977
FileSystem : rootfs
Device :rootfs
MountOptions : rw
DiskSpace Free : 13.8GB
TotalDisk Space : 46.5GB
InodeSize : N/A
InodeCount : N/A
FreeInodes : N/A
Numberof Bricks: 1
Bricks:
Brick:server:/brick6
•显示客户端使用下面的命令访问卷的列表:
#gluster volume status VOLNAME clients
例如,要显示连接到测试卷的客户端列表
#gluster volume status test-volume clients
Brick :arch:/export/1
Clientsconnected : 2
HostnameBytes Read BytesWritten
----------------- ------------
127.0.0.1:1013776 676
127.0.0.1:101250440 51200
•显示使用以下命令砖的内存使用率和内存池的详细信息:
#gluster volume status VOLNAME mem
例如,要显示的测试卷砖的内存使用率和内存池的详细信息:
Memorystatus for volume : test-volume
----------------------------------------------
Brick :arch:/export/1
Mallinfo
--------
Arena :434176
Ordblks: 2
Smblks :0
Hblks :12
Hblkhd :40861696
Usmblks: 0
Fsmblks: 0
Uordblks: 332416
Fordblks: 101760
Keepcost: 100400
MempoolStats
-------------
NameHotCount ColdCount PaddedSizeof AllocCount MaxAlloc
------------ --------- ------------ ---------- --------
test-volume-server:fd_t0 16384 92 57 5
test-volume-server:dentry_t59 965 84 59 59
test-volume-server:inode_t60 964 148 60 60
test-volume-server:rpcsvc_request_t0 525 6372 351 2
glusterfs:structsaved_frame 0 4096 124 2 2
glusterfs:structrpc_req 0 4096 2236 2 2
glusterfs:rpcsvc_request_t1 524 6372 2 1
glusterfs:call_stub_t0 1024 1220 288 1
glusterfs:call_stack_t0 8192 2084 290 2
glusterfs:call_frame_t0 16384 172 1728 6
•显示使用以下命令将卷的索引节点表:
#gluster volume status VOLNAME inode
例如,以显示测试容量的信息节点表中:
#gluster volume status test-volume inode
inodetables for volume test-volume
----------------------------------------------
Brick :arch:/export/1
Activeinodes:
GFIDLookups Ref IA type
----------- --- -------
6f3fe173-e07a-4209-abb6-484091d754991 9 2
370d35d7-657e-44dc-bac4-d6dd800ec3d31 1 2
LRUinodes:
GFIDLookups Ref IA type
----------- --- -------
80f98abe-cdcf-4c1d-b917-ae564cf557631 0 1
3a58973d-d549-4ea6-9977-9aa218f233de1 0 1
2ce0197d-87a9-451b-9094-9baa381211551 0 2
•显示使用以下命令将卷的开放FD表:
#gluster volume status VOLNAME fd
例如,要显示的测试体积的敞开的fd表:
# glustervolume status test-volume fd
FDtables for volume test-volume
----------------------------------------------
Brick :arch:/export/1
Connection1:
RefCount= 0 MaxFDs = 128 FirstFree = 4
FD EntryPID RefCount Flags
----------- -------- -----
0 263111 2
1 263103 2
2 263101 2
3 263113 2
Connection2:
RefCount= 0 MaxFDs = 128 FirstFree = 0
No openfds
Connection3:
RefCount= 0 MaxFDs = 128 FirstFree = 0
No openfds
•显示使用以下命令将卷的等待接听的电话:
#gluster volume status VOLNAME callpool
每次调用具有包含调用帧调用堆栈。
例如,要显示的测试容积的挂起呼叫:
#gluster volume status test-volume
Pendingcalls for volume test-volume
----------------------------------------------
Brick :arch:/export/1
Pendingcalls: 2
CallStack1
UID : 0
GID : 0
PID : 26338
Unique : 192138
Frames : 7
Frame 1
Ref Count = 1
Translator = test-volume-server
Completed = No
Frame 2
Ref Count = 0
Translator = test-volume-posix
Completed = No
Parent = test-volume-access-control
Wind From = default_fsync
Wind To = FIRST_CHILD(this)->fops->fsync
Frame 3
Ref Count = 1
Translator = test-volume-access-control
Completed = No
Parent = repl-locks
Wind From = default_fsync
Wind To = FIRST_CHILD(this)->fops->fsync
Frame 4
Ref Count = 1
Translator = test-volume-locks
Completed = No
Parent = test-volume-io-threads
Wind From = iot_fsync_wrapper
Wind To = FIRST_CHILD(this)->fops->fsync
Frame 5
Ref Count = 1
Translator = test-volume-io-threads
Completed = No
Parent = test-volume-marker
Wind From = default_fsync
Wind To = FIRST_CHILD(this)->fops->fsync
Frame 6
Ref Count = 1
Translator = test-volume-marker
Completed = No
Parent = /export/1
WindFrom = io_stats_fsync
Wind To = FIRST_CHILD(this)->fops->fsync
Frame 7
Ref Count = 1
Translator = /export/1
Completed = No
Parent = test-volume-server
Wind From = server_fsync_resume
Wind To = bound_xl->fops->fsync
POSIX访问控制列表(ACL)允许你指定为不同的用户或组不同的权限,即使他们不符合原来的拥有者或所属组。
例如:用户John创建了一个文件,但不希望让任何人用这个文件做任何事情,
除了其他用户,安东尼(即使有属于约翰组的其他用户)。
这意味着,除了文件所有者,文件组和其他用户,其他用户和组可以通过使用POSIX的ACL来允许或拒绝访问。
要使用POSIX ACL的文件或目录,挂载点所在的文件或目录存在,必须
安装与POSIX ACL的支持。
11.1.1。激活POSIX的ACL支持对Sever的
要安装对POSIX ACL的支持后端出口目录,请使用以下命令:
# mount-o acl device-namepartition
如果后端导出目录已经安装,请使用以下命令:
# mount-oremount,acl device-namepartition
例如:
# mount -oacl /dev/sda1 /export1
另外,如果该分区被列在/ etc /fstab文件,该分区的以下条目添加到
包括POSIX ACL的选项:
LABEL=/work/export1 xfs rw,acl 1 4
11.1.2。激活POSIX的ACL支持在客户端
要安装glusterfs量配合POSIX ACL支持,请使用以下命令:
# mount–t glusterfs -o acl severname:/volume-idmount point
例如:
# mount-t glusterfs -o acl 198.192.198.234:/glustervolume /mnt/gluster
您可以设置两种类型的POSIX的ACL,也就是说,访问ACL和默认ACL。您可以使用访问ACL来为特定文件或目录的权限授予。您只能对一个目录使用默认的ACL,但如果该目录内的文件不具有访问控制列表,它继承了directory.You的默认ACL的权限可以设置ACL的每个用户,每个组,用户不能在用户组的文件,并通过有效的权利面具。
11.2.1。设置访问的ACL
您可以将访问ACL来授予对文件和目录的权限
要设置或修改的ACL访问
您可以设置或修改访问ACL使用下面的命令:
#setfacl –m entry type file
ACL条目类型是所有者,组和其他的POSIX ACL的陈述。
权限必须是字符r(读取),w(写入),x(执行)的组合。您必须指定以下格式的ACL条目,并可以指定用逗号分隔的多个条目类型。
ACL Entry |
描述 |
u:uid: |
为用户设置访问的ACL。您可以 指定的用户名或UID |
g:gid: |
设置为一组访问的ACL。您可以 指定组名或GID。 |
m: |
设置有效权限掩码。面具是所属组的所有访问权限的所有用户和组条目的组合。 |
o: |
设置为用户比其它的访问的ACL 那些在组中的文件。 |
|
|
如果一个文件或目录已经有一个POSIX的ACL,而setfacl命令被使用时,additionalpermissions被添加到现有的POSIXACL或现有的规则进行修改。
例如,给读取和写入权限的用户安东尼:
#setfacl -m u:antony:rw /mnt/gluster/data/testfile
11.2.2。设置默认的ACL
您可以将默认的ACL只对目录。他们确定的,从它的父目录继承其创建时的文件系统对象的权限。
设置默认的ACL
您可以设置默认的ACL使用下面的命令文件和目录:
#setfacl –m –-set entry type directory
例如,要设置默认的ACL安全/数据目录读取用户而不是用户组中:
#setfacl –m --set o::r /mnt/gluster/data
为单个文件设置访问ACL可以覆盖默认的ACL权限
默认ACL的效果
以下是其中的一个目录的默认ACL的权限传递到其中的文件和子目录的方式:
•子目录继承父目录的默认ACL作为其默认的ACL和访问ACL的。
•文件继承默认ACL作为其访问的ACL。
您可以查看现有的POSIX ACL的文件或目录。
要查看现有的POSIX的ACL
•查看使用以下命令文件的现有权限ACL:
#getfacl path/filename
例如,要查看现有的POSIX ACL安全sample.jpg
#getfacl /mnt/gluster/data/test/sample.jpg
# owner:antony
# group:antony
user::rw-
group::rw-
other::r—
•查看使用以下命令目录的默认ACL:
#getfacl directory name
例如,要查看/数据/ doc中现有ACL
要删除所有用户的权限,组或他人,请使用以下命令:
#setfacl -x ACL entry type file
例如,从用户安东尼删除所有的权限:
#setfacl -x u:antony /mnt/gluster/data/test-file
如果你正在使用Samba访问GlusterFS保险丝支架,然后POSIXACL是默认启用的。samba已经编译使用 - with-ACL支持选项,使访问或安装Samba共享的时候没有特殊的标志是必需的。
目前我们不通过NFS,即使用setfacl支持ACL的配置和getfacl命令不起作用。然而,ACL的权限使用Gluster的本机客户端适用于NFS安装设置。
清除gluster集群环境:
1、清除整个集群的操作
停掉进程/etc/init.d/glusterd stop
删除目录 rm -rf/var/lib/glusterd/*
2、剔除集群的某个点(两种情况)
情况一: 节点进程在
在集群任意节点上 gluster peerdetach hostname
情况二: 节点进程不在
在集群任意节点上 gluster peerdetach hostname
等待节点启动后删除rm -rf/var/lib/glusterd/* (剔除后认为是新节点的机器都可以做这个删除操作再启动进行)