设为首页 收藏本站
查看: 676|回复: 0

[经验分享] glusterfs复制卷的创建以及glusterfs的常用命令

[复制链接]

尚未签到

发表于 2019-2-1 10:06:42 | 显示全部楼层 |阅读模式
一、           安装glusterfs服务端

  •   1.  到阿里云取epel源,和官方的yum源才能安装。(本次把几个个yum源放到附件)
  yuminstall glusterfs-server装完即可
  启动glusterd
  [root@server2yum.repos.d]# systemctl start glusterd
  [root@server2yum.repos.d]# ps -ef | grep gluster
  root      4732    1  0 16:22 ?        00:00:00 /usr/sbin/glusterd -p/var/run/glusterd.pid
  root      4791 3789  0 16:25 pts/1    00:00:00 grep --color=auto gluster
  可以看到glusterfs已经启动。
  查看gluster的状态
  [root@server2yum.repos.d]# gluster peer status
  Connectionfailed. Please check if gluster daemon is operational.
  可以看到以上报错了。可以用一下方法来解决此错误
  [root@server2yum.repos.d]# rm /var/run/glusterd.socket
  rm:是否删除套接字 "/var/run/glusterd.socket"?y
  [root@server2yum.repos.d]# systemctl start glusterd
  [root@server2yum.repos.d]# gluster peer status
  Numberof Peers: 0
  [root@server2yum.repos.d]#
  可以看到此时已经恢复正常
  在server1上重新执行上面的步骤。(步骤略)
二、           安装glusterfs客户端
  同样配置好阿里云的yum源,和官方提供的源。安装glusterfs-cli-3.6.0.29-2.el6.x86_64 glusterfs-libs-3.6.0.29-2.el6.x86_64         glusterfs-fuse-3.6.0.29-2.el6.x86_64
  glusterfs-3.6.0.29-2.el6.x86_64这四个安装包就行
三、           配置glusterfs服务端
  首先要为两个服务端挂载额外的磁盘并且分区挂载到一个特定位置,本次挂载到/data下
  [root@server1 data]# df -HT
  文件系统                类型      容量  已用  可用 已用% 挂载点
  /dev/mapper/centos-root xfs        21G 4.3G   16G   22% /
  devtmpfs                devtmpfs  509M    0  509M    0% /dev
  tmpfs                   tmpfs    518M     0  518M   0% /dev/shm
  tmpfs                   tmpfs     518M  14M  504M    3% /run
  tmpfs                   tmpfs     518M    0  518M    0% /sys/fs/cgroup
  /dev/sda1               xfs       312M 114M  198M   37% /boot
  /dev/sdb1               xfs       5.4G  62M  5.3G    2% /data
  
  [root@localhost data]# df -HT
  文件系统                类型      容量  已用  可用 已用% 挂载点
  /dev/mapper/centos-root xfs        21G 4.0G   17G   20% /
  devtmpfs                devtmpfs  509M    0  509M    0% /dev
  tmpfs                  tmpfs     518M    0  518M    0% /dev/shm
  tmpfs                   tmpfs     518M 7.3M  511M    2% /run
  tmpfs                   tmpfs     518M    0  518M    0% /sys/fs/cgroup
  /dev/sda1               xfs       312M 114M  198M   37% /boot
  /dev/sdb1               xfs       5.4G  61M  5.3G    2% /data
  
  下面来让我们把两台glusterfs服务器做成一个群集
  [root@server1 data]# gluster peer probe server2
  查看当前状态,可以看到当前有两个节点了
  [root@server1 data]# gluster peer status
  Number of Peers: 1
  Hostname: 192.168.2.29
  Uuid: 60e180d4-dc68-4fac-a09e-225977c91340
  State: Peer in Cluster (Connected)
  Other names:
  server2
  
  下面创建几种类型的卷来实验一下效果

  •   哈希卷:(不提供冗余,根据一种特殊的算法访问服务端)
[root@server1 data]# gluster volume create haxi server1:/data/haxi_b1server2:/haxi_b2

  •   复制卷 (可以提供冗余,相当于raid1)
[root@server1 data]#gluster volume create fuzhi replica 2server1:/data/fuzhi_b1 server2:/data/fuzhi_b2

  •   哈希复制卷
gluster volume create hxfz server1:/data/hxfz_b1server2:/data/hxfz_b1 server1:/data/hxfz_b2 server2:/data/hxfz_b2 force

  •   条带卷
gluster volume create tiaodai stripe 2server1:/data/tiaodai_b1 server2:/data/tiaodai_b2
  查看卷的信息
  [root@server1 data]# gluster volume info
   复制卷
  Volume Name: fuzhi
  Type: Replicate
  Volume ID: 0bc17a47-c255-403e-b407-8ed6cdde136e
  Status: Started
  Number of Bricks: 1 x 2 = 2
  Transport-type: tcp
  Bricks:
  Brick1: server1:/data/fuzhi_b1
  Brick2: server2:/data/fuzhi_b2
  Options Reconfigured:
  performance.readdir-ahead: on
   哈希卷
  Volume Name: haxi
  Type: Distribute
  Volume ID: 02700557-aabf-46ce-b04f-94349e448d84
  Status: Started
  Number of Bricks: 2
  Transport-type: tcp
  Bricks:
  Brick1: server1:/data/haxi_b1
  Brick2: server2:/data/haxi_b2
  Options Reconfigured:
  performance.readdir-ahead: on
   哈希复制卷
  Volume Name: hxfz
  Type: Distribute
  Volume ID: 91647ca1-d8dc-4f9b-89f1-8bff7b5761f6
  Status: Started
  Number of Bricks: 4
  Transport-type: tcp
  Bricks:
  Brick1: server1:/data/hxfz_b1
  Brick2: server2:/data/hxfz_b1
  Brick3: server1:/data/hxfz_b2
  Brick4: server2:/data/hxfz_b2
  Options Reconfigured:
  performance.readdir-ahead: on
   条带卷
  Volume Name: tiaodai
  Type: Stripe
  Volume ID: faba8182-be90-4fa6-8a56-dea887f94024
  Status: Started
  Number of Bricks: 1 x 2 = 2
  Transport-type: tcp
  Bricks:
  Brick1: server1:/data/tiaodai_b1
  Brick2: server2:/data/tiaodai_b2
  Options Reconfigured:
  performance.readdir-ahead: on
  

一、           在客户端进行挂载
  首先在客户端创建挂载点
  # mkdir haxi fuzhi hxfz tiaodai
  进行挂载
  挂载格式  mount  -t (类型) servername:卷的名字   本机挂载点
  mount -t glusterfs server1:/haxi   haxi
  mount –t glusterfs server1:/hxfz  hxfz
  mount –t glusterfs server1:/fuzhi  fuzhi
  mount –t glusterfs server1:/tiaodai  tiaodai
  使用df命令查看挂载情况
  [root@server1 fuzhi]# df -HT
  Filesystem                   Type            Size  Used Avail Use% Mounted on
  /dev/mapper/vg_erick-lv_root ext4             20G  1.9G  17G  11% /
  tmpfs                        tmpfs           389M     0 389M   0% /dev/shm
  /dev/sda1                    ext4            508M   35M 448M   8% /boot
  server1:/fuzhi              fuse.glusterfs  5.4G   62M 5.3G   2% /root/fuzhi
  server2:/fuzhi              fuse.glusterfs  5.4G   62M 5.3G   2% /root/fuzhi
  server1:hxfz                 fuse.glusterfs   51G 8.0G   43G  16% /root/hxfz
  server1:/haxi               fuse.glusterfs   26G  4.0G  22G  16% /root/haxi
  server1:/tiaodai            fuse.glusterfs   26G  4.0G  22G  16% /root/fuzhi/tiaodai
  现在可以查看当前客户端的进程
  [root@server1 fuzhi]# ps -ef | grep glusterfs
  root      2461     1  0Mar06 ?        00:00:02/usr/sbin/glusterfs --volfile-server=server1 --volfile-id=/fuzhi fuzhi/
  root      2580     1  0Mar06 ?        00:00:02/usr/sbin/glusterfs --volfile-server=server2 --volfile-id=/fuzhi fuzhi/
  root      2700     1  0Mar06 ?        00:00:02/usr/sbin/glusterfs --volfile-server=server1 --volfile-id=hxfz hxfz/
  root      4672     1  006:39 ?        00:00:00/usr/sbin/glusterfs --volfile-server=server1 --volfile-id=/haxi haxi/
  root      4752     1  006:45 ?        00:00:00/usr/sbin/glusterfs --volfile-server=server1 --volfile-id=/tiaodai tiaodai/
  可以看到一个挂载对应这个一个进程。
二、           几种卷组的测试

  •   测试复制卷
  复制卷就相当于raid0,可以做冗余,在写文件时,把流量写成2份到不同的server端。
  首先在client端创建测试文件
  [root@client fuzhi]# touch {1..10}
  [root@client fuzhi]# ls
   1  10  2 3  4  5 6  7  8  9
  分别在Server端查看文件是否产生
  [root@server1 fuzhi_b1]# ls
  1 10  2  3 4  5  6 7  8  9
  [root@server2 fuzhi_b2]# ls
  1 10  2  3 4  5  6 7  8  9
  已经产生了文件。
  测试更改文件内容
  [root@client fuzhi]# echo"test">1
  [root@client fuzhi]# cat 1
  Test
  [root@server2 fuzhi_b2]# cat 1
  Test
  
  [root@server1 fuzhi_b1]# cat 1
  Test
  测试删除
  [root@client fuzhi]# rm * -f
  [root@client fuzhi]# ll
  total 0
  [root@server1 fuzhi_b1]# ll
  总用量 0
  
  [root@server2 fuzhi_b2]# ll
  总用量 0
  可以看到现在两个server端已经没有数据
  下面模拟一下当其中一个server宕机后的是怎么恢复的
  [root@client fuzhi]# touch{1..10}
  [root@client fuzhi]# ls
  10  2 3  4  5 6  7  8  9
  现在server1和server2应该已经同步了数据
  现在模拟server1的网络突然断开的情况
  [root@server1fuzhi_b1]# systemctl stop network
  现在我们继续用客户端进行写和删除操作
  [root@client fuzhi]# touch{10..20}
  [root@client fuzhi]# rm -f{1..10}
  [root@client fuzhi]# ls
  11  12 13  14  15 16  17  18 19  20
  现在我们到server2上查看数据
  [root@server2 fuzhi_b2]# ls
  11  12 13  14  15 16  17  18 19  20
  此时我们能看到server2 已经同步数据了,由于server1网络已经物理断开了,所以数据应该不会同步

  下面我们对server1进行恢复
  [root@server1 fuzhi_b1]# glustervolume heal fuzhi
  下面在查看我们的数据
  [root@server1 fuzhi_b1]# ls
  11  12 13  14  15 16  17  18 19  20
  发现我们的数据已经同步回来了!
  模拟磁盘损坏并由server3顶替server1的位置
  查看当前server1 server2 和client的数据
  [root@server1 fuzhi_b1]# ls
  11  12  13 14  15  16  17  18 19  20
  [root@server2 fuzhi_b2]# ls
  11  12  13 14  15  16  17  18 19  20
  
  [root@client fuzhi]# ls
  11  12  13 14  15  16  17  18 19  20
  查看当前复制分区的信息
  [root@server2 fuzhi_b2]# gluster volume info fuzhi
  
  Volume Name: fuzhi
  Type: Replicate
  Volume ID: 0bc17a47-c255-403e-b407-8ed6cdde136e
  Status: Started
  Number of Bricks: 1 x 2 = 2
  Transport-type: tcp
  Bricks:
  Brick1: server1:/data/fuzhi_b1
  Brick2: server2:/data/fuzhi_b2
  Options Reconfigured:
  features.inode-quota: on
  features.quota: on
  performance.readdir-ahead: on
  可以看到此时的数据是一样的,现在我们把server1的sdb盘卸载掉,然后用server3来顶替server1工作。
  移除server1的sdb后,现在可以看到server1的/data目录以及损坏
  [root@server1 data]# ls
  ls: 无法打开目录.: 输入/输出错误
  此时我们到客户端更新目录的内容
  [root@client fuzhi]# touch {100..110}
  [root@client fuzhi]# ls
  100  101  102 103  104  105 106  107  108 109  11  110 12  13  14 15  16  17 18  19  20
  [root@server2 fuzhi_b2]# ls
  100  102  104 106  108  11  12  14  16 18  20
  101  103  105 107  109  110 13  15  17  19
  替换步骤:

  •   1.        把server1的brick移除
[root@server2fuzhi_b2]# gluster volume remove-brick fuzhi replica 1 server1:/data/fuzhi_b1force
查看当前fuzhi卷的信息,现在可以看到只有server2的卷了

Removingbrick(s) can result in data loss. Do you want to Continue? (y/n) y
  volume remove-brick commitforce: success
  [root@server2 fuzhi_b2]#gluster volume info fuzhi
  

  Volume Name: fuzhi
  Type: Distribute
  Volume ID:0bc17a47-c255-403e-b407-8ed6cdde136e
  Status: Started
  Number ofBricks: 1
  Transport-type: tcp
  Bricks:
  Brick1:server2:/data/fuzhi_b2
  Options Reconfigured:
  features.inode-quota: on
  features.quota: on
performance.readdir-ahead:on

  •   2.        把server3的brick添加到复制卷
[root@server2 fuzhi_b2]# gluster volume add-brickfuzhi replica 2 server3:/data/fuzhi_b3force
volume add-brick: success
注意现在这个replica后面跟的数量一定是大于1的
查看当前fuzhi卷的信息,可以发现已经把
  [root@server2 fuzhi_b2]# gluster volume info fuzhi
  

  Volume Name: fuzhi
  Type: Replicate
  Volume ID: 0bc17a47-c255-403e-b407-8ed6cdde136e
  Status: Started
  Number of Bricks: 1 x 2 = 2
  Transport-type: tcp
  Bricks:
  Brick1: server2:/data/fuzhi_b2
  Brick2: server3:/data/fuzhi_b3
  Options Reconfigured:
  features.inode-quota: on
  features.quota: on
performance.readdir-ahead: on
  现在执行节点健康检查
  [root@server2 fuzhi_b2]# gluster volume heal fuzhi
  现在可以看到server3上的数据已经同步过来了
  [root@server3 fuzhi_b3]# ls
  0    101 103  105  107 109  110  13 15  17  19
  100  102 104  106  108 11   12   14 16  18  20
  但是这样恢复有个问题,那就是server3不会自动同步数据必须执行
  gluster volume heal fuzhi才会同步
  

  注:替换磁盘的方法是本人自己想法,可能不正确,欢迎大家纠正!)
  

  glusterfs的常用命令
  

  gluster peer
  帮助 gluster volume create help
  本次把sdb1挂在到了/date/下
  卷的类型
  哈希卷 gluster volume create haxi server1:/data/haxi_b1 server2:/data/haxi_b2 force
  复制卷 gluster volume create fuzhi replica 2 server1:/data/fuzhi_b1 server2:/data/fuzhi_b2
  条带卷gluster volume create tiaodai stripe 2 server1:/data/tiaodai_b1 server2:/data/tiaodai_b2
  哈希条带复制卷  gluster volume create hxfz server1:/data/hxfz_b1 server2:/data/hxfz_b1 server1:/data/hxfz_b2 server2:/data/hxfz_b2 force
  增加节点
  gluster peer probe ip/主机名
  删除节点
  gluster peer detach ip/主机名
  查看节点状态
  gluster peer status
  为哈希卷扩容
  gluste volume add-brick  卷的名字   servername:/brick的位置
  为哈希卷缩小空间
  gluster volume remove-brick 卷的名字 servername:/brik的位置 start
  gluster volume remove-brick 卷的名字 servername:/brick的位置 commit -->此时会丢失数据
  为复制卷扩容
  gluster volume add=brick 卷的名字 replica 2 servername:/brick的位置  servername:/brick的位置 start
  为复制卷缩小空间
  gluster volume remove-brick 卷的名字 replica 2 servername:/brick的位置 servername:/brick的位置 start
  gluster volume remove-brick 卷的名字 servername:/brick的位置  servername:/brick的位置 commit
  

  负载均衡
  命令格式
  volume rebalance 卷的名字 fix-layout start
  数据监控检测以及修复
  gluster volume heal 卷的名称
  磁盘配额
  gluster volume quota 卷的名字 limit-usage 路径 限额大小
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670327-1-1.html 上篇帖子: glusterfs实践三(cluster/Replicate ) 下篇帖子: glusterFS与ceph哪个更好些,记些东西
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表