zoukankan      html  css  js  c++  java
  • GFS 日常操作

    实验环境

    配置规划

     软件下载

    下载地址
    http://bits.gluster.org/pub/gluster/glusterfs/3.4.2/x86_64/
    RPM安装包
    glusterfs-3.4.2-1.el6.x86_64.rpm
    glusterfs-api-3.4.2-1.el6.x86_64.rpm
    glusterfs-cli-3.4.2-1.el6.x86_64.rpm
    glusterfs-fuse-3.4.2-1.el6.x86_64.rpm
    glusterfs-libs-3.4.2-1.el6.x86_64.rpm
    glusterfs-server-3.4.2-1.el6.x86_64.rpm依赖包安装
    依赖包
    Rpcbind
    Libaio
    Lvm2-devel
    YUM安装
    Yum install rpcbind libaio lvm2-devel
    

     软件安装

    安装服务器端软件包
    glusterfs-3.4.2-1.el6.x86_64.rpm
    glusterfs-cli-3.4.2-1.el6.x86_64.rpm 
    glusterfs-libs-3.4.2-1.el6.x86_64.rpm 
    glusterfs-api-3.4.2-1.el6.x86_64.rpm 
    glusterfs-fuse-3.4.2-1.el6.x86_64.rpm 
    glusterfs-server-3.4.2-1.el6.x86_64.rpm
    安装客户端软件包
    glusterfs-3.4.2-1.el6.x86_64.rpm
    glusterfs-libs-3.4.2-1.el6.x86_64.rpm
    glusterfs-fuse-3.4.2-1.el6.x86_64.rpm
    
     
    工具安装
    工具软件
    Atop, iperf, sysstat
    dd, Iozone, fio, postmark
    工具安装
    yum install sysstat
    rpm –ivh *.rpm 
    gcc –o postmark postmark-1.52.c
    

     系统配置

    主机名设置
    /etc/hosts  server1, server2, server3
    DNS设置
    编辑/etc/resolv.conf
    nameserver 192.168.8.2
    NTP设置
    /etc/ntp.conf
    关闭防火墙
    Service iptables stop; chkconfig iptables off
    设置Selinux
    /etc/selinux/config
    SELINUX=disabled
    
    磁盘分区
    EXT4格式化工具目前最大支持16TB
    使用parted进行磁盘分区
    分区格式化
    Mkfs.ext4 –L /brick1/dev/sdb
    

    服务配置

    分区自动挂载
    /etc/fstab
    LABLE=/brcik1 /brick1 ext4 defaults 1 1
    Gluster服务自启动
    Service glusterd start
    Chkconfig glusterd on
    

    二。开始hash创建

    [root@glusterfs1 ~]# gluster peer probe glusterfs2
    peer probe: success: host glusterfs2 port 24007 already in peer list
    [root@glusterfs1 ~]# gluster peer probe glusterfs3
    peer probe: success: host glusterfs3 port 24007 already in peer list
    [root@glusterfs1 ~]# gluster peer info
    unrecognized word: info (position 1)
    [root@glusterfs1 ~]# gluster peer status
    Number of Peers: 2
    
    Hostname: glusterfs2
    Port: 24007
    Uuid: f95fe5a9-eb37-4d7c-b73b-46224a9e5288
    State: Peer in Cluster (Connected)
    
    Hostname: glusterfs3
    Port: 24007
    Uuid: b825a8e5-de88-4ec6-a8b5-a2329d7f5d35
    State: Peer in Cluster (Connected)


    #注意::如果报错请检查24007端口是否开启。。

    div>
    删除节点
    Gluser peer detach IP/主机名</
    #创建一个叫meizi的卷 使用的是glusterfs1下的挂载目录/brick1/创建一个b1的目录
    [root@glusterfs1 /]# gluster volume create meizi glusterfs1:/brick1/b1
    
    
    #启动卷
    [root@glusterfs1 /]# gluster volume start meizi
    volume start: meizi: success
    
    #查看卷信息
    [root@glusterfs1 /]# gluster volume info
     
    Volume Name: meizi
    Type: Distribute
    Volume ID: ea16ad50-60d1-476e-842c-b429a80d493d
    Status: Started
    Number of Bricks: 1
    Transport-type: tcp
    Bricks:
    Brick1: glusterfs1:/brick1/b1
    
    
    #挂载卷:发现卷已经挂载到本地,可以用别名或者IP
    [root@glusterfs1 /]# mount -t glusterfs 192.168.1.109:/meizi /mnt
    [root@glusterfs1 /]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              18G  2.6G   15G  16% /
    tmpfs                 495M  228K  495M   1% /dev/shm
    /dev/sda1             291M   33M  243M  12% /boot
    /dev/sdb1             7.9G  147M  7.4G   2% /brick1
    /dev/sdc1             7.9G  146M  7.4G   2% /brick2
    192.168.1.109:/meizi  7.9G  146M  7.4G   2% /mnt
    

     GlusterFS命令

    GlusterFS命令
    gluster peer probe HOSTNAME
    gluster volume info
    gluster volume create VOLNAME [stripe COUNT] 
    [replica COUNT] [transport tcp | rdma] BRICK …
    gluster volume delete VOLNAME
    gluster volume add-brick VOLNAME NEW-BRICK ...
    gluster volume rebalance VOLNAME start
    
    
    
    #添加集群理的brick
    [root@glusterfs1 b1]# gluster volume add-brick meizi glusterfs2:/brick1/b2 glusterfs3:/brick1/b3
    volume add-brick: success
    [root@glusterfs1 b1]# gluster volume info
     
    Volume Name: meizi
    Type: Distribute
    Volume ID: ea16ad50-60d1-476e-842c-b429a80d493d
    Status: Started
    Number of Bricks: 3
    Transport-type: tcp
    Bricks:
    Brick1: glusterfs1:/brick1/b1
    Brick2: glusterfs2:/brick1/b2
    Brick3: glusterfs3:/brick1/b3
    
    
    # 发现磁盘扩展大了
    [root@glusterfs1 b1]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              18G  2.6G   15G  16% /
    tmpfs                 495M  228K  495M   1% /dev/shm
    /dev/sda1             291M   33M  243M  12% /boot
    /dev/sdb1             7.9G  147M  7.4G   2% /brick1
    /dev/sdc1             7.9G  146M  7.4G   2% /brick2
    192.168.1.109:/meizi   24G  310M   22G   2% /mnt
    
    
    #在/mnt/里创建目录/发现 3台服务器里面的/brick1/b{1..3}里面都有文件了。
    
    
    #删除操作删除一个节点把3节点逻辑磁盘删除
    
    [root@glusterfs1 b1]# gluster volume remove-brick meizi glusterfs3:/brick1/b3 
    Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
    volume remove-brick commit force: success
    [root@glusterfs1 b1]# gluster volume info
     
    Volume Name: meizi
    Type: Distribute
    Volume ID: ea16ad50-60d1-476e-842c-b429a80d493d
    Status: Started
    Number of Bricks: 2
    Transport-type: tcp
    Bricks:
    Brick1: glusterfs1:/brick1/b1
    Brick2: glusterfs2:/brick1/b2
    
    #发现磁盘变小 现在是2给磁盘
    [root@glusterfs1 b1]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              18G  2.6G   15G  16% /
    tmpfs                 495M  228K  495M   1% /dev/shm
    /dev/sda1             291M   33M  243M  12% /boot
    /dev/sdb1             7.9G  148M  7.4G   2% /brick1
    /dev/sdc1             7.9G  146M  7.4G   2% /brick2
    192.168.1.109:/meizi   16G  296M   15G   2% /mnt
    
    
    #但是发现数据没有恢复,只剩下其中在线节点的数据,如果想要数据从被删除的brick里面底层copy过去
    [root@glusterfs2 ceshi]# ll
    total 156
    -rw-r--r-- 2 root root     0 Mar 18 04:59 b
    -rw-r--r-- 2 root root 56728 Mar 18 05:00 glusterfs-api-3.4.2-1.el6.x86_64.rpm
    -rw-r--r-- 2 root root 98904 Mar 18 05:00 glusterfs-cli-3.4.2-1.el6.x86_64.rpm
    
    #不管增加还是删除一般都会对meizi这个卷做负载均衡,不然数据分布会集中在老的分布上
    [root@glusterfs2 ceshi]# gluster volume rebalance meizi start
    volume rebalance: meizi: success: Starting rebalance on volume meizi has been successful.
    ID: a46ce2ba-9237-48ee-bfbc-e9551716d4eb
    
    
    #当你在去加删除的3节点逻辑盘时候报错,是因为3节点力有这个集群的扩展卷,需要吧/brick1/b3删除以后就可以加了,加完在执行rebalance来平均负载(如果线上,建议业务不忙的时候在做)
    [root@glusterfs2 mnt]# gluster volume add-brick meizi glusterfs3:/brick1/b3
    volume add-brick: failed: 
    [root@glusterfs2 mnt]# gluster volume add-brick meizi glusterfs3:/brick1/b3
    volume add-brick: success
    
    [root@glusterfs2 mnt]# gluster volume rebalance meizi start
    volume rebalance: meizi: success: Starting rebalance on volume meizi has been successful.
    ID: b18108b5-fdde-4b98-9b4e-552c6bd53f74
    

    #删除卷

    #删除的时候建议先卸载 umount 
    
    #在停止卷
    [root@glusterfs2 ceshi]# gluster volume stop meizi
    Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y
    volume stop: meizi: success
    
    #删除卷
    [root@glusterfs2 ceshi]# gluster volume delete meizi
    Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y
    volume delete: meizi: success
    
    #查看卷的时候已经没有了
    [root@glusterfs2 ceshi]# gluster volume info
    No volumes present
    
    #删除底层数据
    [root@glusterfs1 ceshi]# rm -rf /brick1/b1/
    [root@glusterfs2 brick1]#  rm -rf /brick1/b2
    [root@glusterfs3 ceshi]#  rm -rf /brick1/b3
    

     三。复制卷

    #创建复制卷  创建1个复制卷由2给逻辑磁盘组成
    [root@glusterfs1 ceshi]# gluster volume create meizi replica 2 glusterfs1:/brick1/b1 glusterfs2:/brick1/b2
    volume create: meizi: success: please start the volume to access data
    
    #启动卷
    [root@glusterfs1 ceshi]# gluster volume  start meizi
    volume start: meizi: success
    
    #查看卷信息
    [root@glusterfs1 ceshi]# gluster volume info
     
    Volume Name: meizi
    Type: Replicate
    Volume ID: d6cc9695-9c7d-4747-9e30-755e89b1047b
    Status: Created
    Number of Bricks: 1 x 2 = 2
    Transport-type: tcp
    Bricks:
    Brick1: glusterfs1:/brick1/b1
    Brick2: glusterfs2:/brick1/b2
    
    #挂载卷,复制卷相当于raid1空间利用率只有一半
    [root@glusterfs1 mnt]# mount -t glusterfs 192.168.1.109:/meizi /mnt/ 
    [root@glusterfs1 mnt]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda2              18G  2.6G   15G  16% /
    tmpfs                 495M  228K  495M   1% /dev/shm
    /dev/sda1             291M   33M  243M  12% /boot
    /dev/sdb1             7.9G  147M  7.4G   2% /brick1
    /dev/sdc1             7.9G  146M  7.4G   2% /brick2
    192.168.1.109:/meizi  7.9G  146M  7.4G   2% /mnt
    
    
    
    
    
    #卷同步操作,删除某一个节点力的信息
    [root@glusterfs1 vols]# rm -rf /var/lib/glusterd/vols/meizi/
    
    #从节点2还原节点配置文件
    [root@glusterfs1 vols]# gluster volume sync glusterfs2 all
    
    Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y
    volume sync: success
    [root@glusterfs1 vols]# ls
    meizi
    

     卷参数配置

    Gluster volume set <卷> <参数>
    参数项目 说明 缺省值 合法值
    Auth.allow IP访问授权 *(allow all) Ip地址
    Cluster.min-free-disk 剩余磁盘空间阈值 10% 百分比
    Cluster.stripe-block-size 条带大小 128KB 字节
    Network.frame-timeout 请求等待时间 1800s 0-1800
    Network.ping-timeout 客户端等待时间 42s 0-42
    Nfs.disabled 关闭NFS服务 Off Off|on
    Performance.io-thread-count IO线程数 16 0-65
    Performance.cache-refresh-timeout 缓存校验周期 1s 0-61
    Performance.cache-size 读缓存大小 32MB 字节
    
    #授权远程访问。  
    #允许192.168.1.109访问
    [root@glusterfs1 vols]# gluster volume set meizi auth.allow 192.168.1.109
    #拒绝192.168.1.104 访问 也可以用网络段
    [root@glusterfs1 vols]# gluster volume set meizi auth.reject 192.168.1.104
    [root@glusterfs1 vols]# gluster volume set meizi auth.reject 192.168.1.*
    
    #关闭NFS进程
    [root@glusterfs1 vols]# ps -ef |grep nfs
    root     34280     1  0 05:31 ?        00:00:00 /usr/sbin/glusterfs -s localhost --volfile-id gluster/nfs -p /var/lib/glusterd/nfs/run/nfs.pid -l /var/log/glusterfs/nfs.log -S /var/run/2c9f3b7533e5ab1ee0c5c1fb6a6831bd.socket
    root     34876 28232  0 05:52 pts/1    00:00:00 grep nfs
    [root@glusterfs1 vols]# gluster volume set meizi nfs.disable on
    volume set: success
    [root@glusterfs1 vols]# ps -ef |grep nfs
    root     34896 28232  0 05:53 pts/1    00:00:00 grep nfs
    

     #日志存放在/var/log/gluster/下

    #测试工具
    测试网络
    
    
    [root@43-247-208-225 ~]# iperf -s
    
    [  8] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29782
    [  4] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29783
    [  5] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29785
    [  6] local 43.247.208.225 port 5001 connected with 43.247.208.229 port 29784
    [  8]  0.0-10.0 sec  3.90 GBytes  3.35 Gbits/sec
    [  5]  0.0-10.0 sec  1.40 GBytes  1.20 Gbits/sec
    [  4]  0.0-10.0 sec  1.62 GBytes  1.39 Gbits/sec
    [  6]  0.0-11.0 sec  2.36 GBytes  1.84 Gbits/sec
    [SUM]  0.0-11.0 sec  9.28 GBytes  7.24 Gbits/sec
    
    [root@43-247-208-229 ~]# iperf -c 43.247.208.225 -P4
    
    Client connecting to 43.247.208.225, TCP port 5001
    TCP window size:  127 KByte (default)
    ------------------------------------------------------------
    [  5] local 43.247.208.229 port 29784 connected with 43.247.208.225 port 5001
    [  4] local 43.247.208.229 port 29783 connected with 43.247.208.225 port 5001
    [  6] local 43.247.208.229 port 29785 connected with 43.247.208.225 port 5001
    [  3] local 43.247.208.229 port 29782 connected with 43.247.208.225 port 5001
    [ ID] Interval       Transfer     Bandwidth
    [  3]  0.0- 9.0 sec  3.90 GBytes  3.72 Gbits/sec
    [  4]  0.0- 9.0 sec  1.62 GBytes  1.55 Gbits/sec
    [  6]  0.0- 9.0 sec  1.40 GBytes  1.33 Gbits/sec
    [  5]  0.0-10.0 sec  2.36 GBytes  2.03 Gbits/sec
    [SUM]  0.0-10.0 sec  9.28 GBytes  7.97 Gbits/sec
    

     #复制卷故障数据不一样

    故障现象:双副本卷数据出现不一致
    故障模拟:删除其中一个brick数据
    [root@glusterfs1 mnt]# rm -rf  /brick1/b1/dd.dat
    
    
    
    
    修复方法 触发自修复:遍历并访问文件
    find /mnt -type f -print0 | xargs -0 head -c1
    cat 一下文件 然后发现删除的回来了
    [root@glusterfs1 mnt]# ls /brick1/b1/
    abc
    
    恢复节点配置信息
    故障现象:其中一个节点配置信息不正确
    故障模拟
    
    
    
    配置信息位置:/var/lib/glusterd/ 
    修复方法 触发自修复:通过Gluster工具同步配置信息
    Gluster volume sync server1 all
    
    
    
    #操作过程
    
    
    
    删除server2部分配置信息
    [root@glusterfs2 brick1]# rm -rf /brick1/b2/
    
    #查看1的扩展属性
    [root@glusterfs1 brick1]# getfattr -d -m . -e hex b1/
    # file: b1/
    trusted.afr.meizi-client-0=0x000000000000000000000000
    trusted.afr.meizi-client-1=0x000000000000000000000000
    trusted.gfid=0x00000000000000000000000000000001
    trusted.glusterfs.dht=0x000000010000000000000000ffffffff
    trusted.glusterfs.volume-id=0xd6cc96959c7d47479e30755e89b1047b
    
    #去2节点创建这个b2目录 
    [root@glusterfs2 brick1]# mkdir b2
    #查看扩展属性是空的
    [root@glusterfs2 brick1]# getfattr -d -m . -e hex b2
    
    
    
    
    
    恢复复制卷brick
    故障现象:双副本卷中一个brick损坏
    恢复流程
    1、重新建立故障brick目录
    setfattr -n trusted.gfid -v 0x00000000000000000000000000000001 b2 
    setfattr -n trusted.glusterfs.dht -v 0x000000010000000000000000ffffffff b2
    setfattr -n trusted.glusterfs.volume-id -v 0xd6cc96959c7d47479e30755e89b1047b b2
    -v 的参数设置成你的值
    2、设置扩展属性(参考另一个复制brick) 
    3、重启glusterd服务 4、触发数据自修复 find /mnt -type f -print0 | xargs -0 head -c1 >/dev/nul
    常见故障处理(1)
    Q1:Gluster需要占用哪些端口?
    Gluster管理服务使用24007端口,Infiniband管理使用24008端口,每个
    brick进程占用一个端口。比如4个brick,使用24009-24012端口。
    Gluster内置NFS服务使用34865-34867端口。此外,portmapper使用111
    端口,同时打开TCP和UDP端口。
    Q2:创建Gluster资源池出问题?
    首先,检查nslookup是否可以正确解析DNS和IP。其次,确认没有使用
    /etc/hosts直接定义主机名。虽然理论上没有问题,但集群规模一大很多
    管理员就会犯低级错误,浪费大量时间。再者,验证Gluster服务所需的
    24007端口是否可以连接(比如telnet)?Gluster其他命令是否可以成功执
    行?如果不能,Gluster服务很有可能没有启动。
    Q3:如何检查Gluster服务是否运行?
    可以使用如下命令检查Gluster服务状态:
    (1) service glusterd status
    (2) systemctl status glusterd.service
    (3) /etc/init.d/glusterd status
    
    
    常见故障处理(2)
    Q4:无法在server端挂载(mount)Gluster卷?
    检查gluster卷信息,使用gluster volume info确认volume处于启动状态。
    运行命令“showmount -e <gluster node>“,确认可以输出volume相关
    信息。
    Q5:无法在client端挂载(mount)Gluster卷?
    检查网络连接是否正常,确认glusterd服务在所有节点上正常运行,确认
    所挂载volume处于启动状态。
     Q6:升级Gluster后,客户端无法连接?
    如果使用原生客户端访问,确认Gluster客户端和服务端软件版本一致。
    通常情况下,客户端需要重新挂载卷。
    Q7: 运行“gluster peer probe“,不同节点输出结果可能不一致?
    这个通常不是问题。每个节点输出显示其他节点信息,并不包括当前节
    点;不管在何处运行命令,节点的UUID在所有节点上都是相同和唯一的;
    输出状态通常显示“Peer in Cluster (Connected)“,这个值应该和
    /var/lib/glusterd/glusterd.info匹配。
    
    
    
    常见故障处理(3)
    Q8:数据传输过程中意外杀掉gluster服务进程?
    所有数据都不会丢失。Glusterd进程仅用于集群管理,比如集群节点扩
    展、创建新卷和修改旧卷,以及卷的启停和客户端mount时信息获取。杀
    掉gluster服务进程,仅仅是一些集群管理操作无法进行,并不会造成数
    据丢失或不可访问。
    Q9:意外卸载gluster?
    如果Gluster配置信息没有删除,重新安装相同版本gluster软件,然后重
    启服务即可。Gluster配置信息被删除,但数据仍保留的话,可以通过创
    建新卷,正确迁移数据,可以恢复gluster卷和数据。友情提示:配置信
    息要同步备份,执行删除、卸载等操作一定要谨慎。
    Q10:无法通过NFS挂载卷?
    这里使用Gluster内置NFS服务,确认系统内核NFS服务没有运行。再者,
    确认rpcbind或portmap服务处于正常运行中。内置NFS服务目前不支持
    NFS v4,对于新Linux发行版默认使用v4进行连接,mount时指定选项
    vers=3。
    mount -t nfs -o vers=3 server2:/myglustervolume /gluster/mount/point
    
    
    
    
    常见故障处理(4)
    Q11:双节点复制卷,一个节点发生故障并完成修复,数据如何同步?
    复制卷会自动进行数据同步和修复,这个在同步访问数据时触发,也可
    以手动触发。3.3以后版本,系统会启动一个服务自动进行自修复,无需
    人工干预,及时保持数据副本同步。
     Q12:Gluster日志在系统什么位置?
    新旧版本日志都位于/var/log/glusterfs
    Q13:如何轮转(rotate)Gluster日志?
    使用gluster命令操作:gluster volume log rotate myglustervolume
    Q14:Gluster配置文件在系统什么位置?
    3.3以上版本位于/var/lib/glusterd,老版本位于/etc/glusterd/。  Q15:数据库运行在gluster卷上出现很多奇怪的错误和不一致性?
    Gluster目前不支持类似数据库的结构化数据存储,尤其是大量事务处理
    和并发连接。建议不要使用Gluster运行数据库系统,但Gluster作为数据
    库备份是一个很不错的选择
    
    
    常见故障处理(5)
    Q16:Gluster系统异常,重启服务后问题依旧。
    很有可能是某些服务进程处于僵死状态,使用ps -ax | grep glu命令查
    看。如果发出shutdown命令后,一些进程仍然处于运行状态,使用
    killall -9 gluster{,d,fs,fsd}杀掉进程,或者硬重启系统。
    Q17:需要在每个节点都运行Gluster命令吗?
    这个根据命令而定。一些命令只需要在Gluster集群中任意一个节点执
    行一次即可,比如“gluster volume create”,而例如“gluster peer 
    status ”命令可以在每个节点独立多次执行。
    Q18:如何快速检查所有节点状态?
    Gluster工具可以指定选项 --remote-host在远程节点上执行命令,比如
    gluster --remote-host=server2 peer status。如果配置了CTDB,可以
    使用“onnode”在指定节点上执行命令。另外,还可以通过sshkeygen和ssh-copy-id配置SSH无密码远程登录和执行命令
    
    
    
    
    常见故障处理(6)
    Q19:Gluster导致网络、内核、文件系统等出现问题?
    可能。但是,绝大多数情况下,Gluster或者软件都不会导致网络或存
    储等基础资源出现问题。如果发现由Gluster引起的问题,可以提交
    Bug和patch,并可以社区和邮件列表中讨论,以帮助改善Gluster系统。
    Q20:为什么会发生传输端点(transport endpoint)没有连接?
    在Gluster日志中看到这种错误消息很正常,表明Gluster由于一些原因
    无法通信。通常情况下,这是由于集群中某些存储或网络资源饱和引
    起的,如果这类错误消息大量重复报告,就需要解决问题。使用相关
    技术手段可以解决大部分的问题,另外有些情况可能由以下原因引起。
    (1)需要升级RAID/NIC驱动或fireware;
    (2)第三方备份系统在相同时间运行;
    (3)周期更新locate数据库包含了brick和网络文件系统;
    (4)过多rsync作业工作在gluster brick或mount点。
    

     #生产调优

    系统关键考虑
    性能需求
    Read/Write
    吞吐量/IOPS/可用性
    Workload
    什么应用?
    大文件?
    小文件?
    除了吞吐量之外的需求?
    
    
    
    
    系统规模和架构
    性能理论上由硬件配置决定
    CPU/Mem/Disk/Network
    系统规模由性能和容量需求决定
    2U/4U存储服务器和JBOD适合构建Brick
    三种典型应用部署
    容量需求应用
    2U/4U存储服务器+多个JBOD
    CPU/RAM/Network要求低
    性能和容量混合需求应用
    2U/4U存储服务器+少数JBOD
    高CPU/RAM,低Network
    性能需求应用
    1U/2U存储服务器(无JBOD)
    高CPU/RAM,快DISK/Network



    系统配置
    根据Workload选择适当的Volume类型
    Volume类型
    DHT – 高性能,无冗余
    AFR – 高可用,读性能高
    STP – 高并发读,写性能低,无冗余
    协议/性能
    Native – 性能最优
    NFS – 特定应用下可获得最优性能
    CIFS – 仅Windows平台使用
    数据流
    不同访问协议的数据流差异
    
    系统硬件配置
    节点和集群配置
    多CPU-支持更多的并发线程
    多MEM-支持更大的Cache
    多网络端口-支持更高的吞吐量
    专用后端网络用于集群内部通信
    NFS/CIFS协议访问需要专用后端网络
    推荐至少10GbE
    Native协议用于内部节点通信
    
    
    
    性能相关经验
    GlusterFS性能很大程度上依赖硬件
    充分理解应用基础上进行硬件配置
    缺省参数主要用于通用目的
    GlusterFS存在若干性能调优参数
    性能问题应当优先排除磁盘和网络故障
    

    Brick推荐配置
    12块磁盘/RAID6 LUN,1 LUN/brcik
    RAID条带大小:256KB
    Readahead:64MB 
    /sys/block/sdb/queue/read_ahead_kb
    /sys/block/sda/queue/max_sectors_kb
    LVM/XFS需要RAID对齐
    pvcreate –dataalignment 2560K
    mkfs.xfs –i size=512 –n size=8192 –d su=256k,sw=10 
    I/O scheduler:deadline
    /sys/block/sda/queue/scheduler
    Mount options:inode64
    
    系统调优
    关键调优参数
    Performance.write-behind-window-size 65535 (字节)
    Performance.cache-refresh-timeout 1 (秒)
    Performance.cache-size 1073741824 (字节) 
    Performance.read-ahead off (仅1GbE)
    Performance.io-thread-count 24 (CPU核数)
    Performance.client-io-threads on (客户端) 
    performance.write-behind on
    performance.flush-behind on
    cluster.stripe-block-size 4MB (缺省128KB)
    Nfs.disable off (缺省打开)  缺省参数设置适用于混合workloads
    不同应用调优
    理解硬件/固件配置及对性能的影响
    如CPU频率
    
    KVM优化
    使用QEMU-GlusterFS(libgfapi)整合方案
    gluster volume set <volume> group virt
    tuned-adm profile rhs-virtualization
    KVM host: tuned-adm profile virtual-host
    Images和应用数据使用不同的volume
    每个gluster节点不超过2个KVM Host (16 guest/host)
    提高响应时间
    减少/sys/block/vda/queue/nr_request
    Server/Guest:128/8 (缺省企值256/128)
    提高读带宽
    提高/sys/block/vda/queue/read_ahead_kb
    VM readahead:4096 (缺省值128)
    

    1 为Glusterfs扩容

    gluster volume remove-brick gv0 replica 2 10.240.37.112:/data/brick/gfs1/ force     在复制卷中有3个节点 删除1个节点命令


    gluster volume info 查看已创建挂载卷

    gluster volume start gv0    启动挂载卷

    gluster volume stop gv0   #删除前,先停止挂载卷
    gluster volume delete gv0
       删除

    扩展卷
    可以在线扩展卷的容量,可以加一个brick到分布卷,来增加分布卷的容量。同样可以增加一组brick到分布式复制卷,来增加卷的容量
    要扩大副本数为2分布式复制卷,您需要增加2的倍数加brick(如4,6,8,等)。
    1、添加服务器到集群
    # gluster peer probe 10.240.37.112
    Probe successful
    2、添加新的brick到test-volume卷
    # gluster volume add-brick gv0   10.240.37.112:/data/brick/gfs1
    Add Brick successful
    3、检查卷信息
    # gluster volume info

    [root@glusterfs1 vols]# gluster volume set meizi auth.allow 192.168.^C109
    [root@glusterfs1 vols]# gluster volume set meizi auth.reject 192.168.1.104

  • 相关阅读:
    [转]Connecting To SQLite Database Using Node.js
    [转]Ubuntu安装ss客户端
    ubuntu18.04连接pptpd服务器(未成功)
    ubuntu18.04安装DB2 11.1 Express-c
    ubuntu 18.04使用sysbench测试MySQL性能
    ubuntu18.04手动安装二进制MySQL8.0
    ubuntu 18.04下载mysql8.0.13源码并编译安装(暂时没有成功)
    Linux使用sleep进行延迟实验
    『浅入浅出』MySQL 和 InnoDB
    『浅入深出』MySQL 中事务的实现
  • 原文地址:https://www.cnblogs.com/zhaobin-diray/p/12294849.html
Copyright © 2011-2022 走看看