Назад | Перейти на главную страницу

Почему том Gluster монтируется с половинной емкостью

Проблема: том Gluster с распределенной репликацией имеет только половину емкости.

Я настроил экземпляры AWS EC2 как том Gluster и третий экземпляр EC2, который монтирует том Gluster.

Оба сервера Gluster имеют по два блока по 2G каждый. Том Gluster настроен с коэффициентом репликации 2, чтобы два сервера содержали 4G идентичных данных. Вот результат запроса на одном из серверов Gluster:

ubuntu@ip-172-31-10-167:~$ sudo gluster volume info

Volume Name: swarm
Type: Distributed-Replicate
Volume ID: 142a9406-f3c9-49c8-a38f-f55e85185d1a
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: ip-172-31-10-167.eu-west-1.compute.internal:/data/gluster/swarm/brick0
Brick2: ip-172-31-28-55.eu-west-1.compute.internal:/data/gluster/swarm/brick0
Brick3: ip-172-31-10-167.eu-west-1.compute.internal:/data/gluster/swarm/brick1
Brick4: ip-172-31-28-55.eu-west-1.compute.internal:/data/gluster/swarm/brick1
Options Reconfigured:
auth.allow: *
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
ubuntu@ip-172-31-10-167:~$ sudo gluster volume status
Status of volume: swarm
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick ip-172-31-10-167.eu-west-1.compute.in
ternal:/data/gluster/swarm/brick0           49152     0          Y       15345
Brick ip-172-31-28-55.eu-west-1.compute.int
ernal:/data/gluster/swarm/brick0            49152     0          Y       14176
Brick ip-172-31-10-167.eu-west-1.compute.in
ternal:/data/gluster/swarm/brick1           49153     0          Y       15366
Brick ip-172-31-28-55.eu-west-1.compute.int
ernal:/data/gluster/swarm/brick1            49153     0          Y       14197
Self-heal Daemon on localhost               N/A       N/A        Y       15388
Self-heal Daemon on ip-172-31-28-55.eu-west
-1.compute.internal                         N/A       N/A        Y       14219

Task Status of Volume swarm
------------------------------------------------------------------------------
There are no active volume tasks

ubuntu@ip-172-31-10-167:~$ sudo gluster volume status swarm detail
Status of volume: swarm
------------------------------------------------------------------------------
Brick                : Brick ip-172-31-10-167.eu-west-1.compute.internal:/data/gluster/swarm/brick0
TCP Port             : 49152               
RDMA Port            : 0                   
Online               : Y                   
Pid                  : 15345               
File System          : xfs                 
Device               : /dev/xvdb           
Mount Options        : rw,relatime,attr2,inode64,noquota
Inode Size           : 512                 
Disk Space Free      : 2.0GB               
Total Disk Space     : 2.0GB               
Inode Count          : 1048576             
Free Inodes          : 1048533             
------------------------------------------------------------------------------
Brick                : Brick ip-172-31-28-55.eu-west-1.compute.internal:/data/gluster/swarm/brick0
TCP Port             : 49152               
RDMA Port            : 0                   
Online               : Y                   
Pid                  : 14176               
File System          : xfs                 
Device               : /dev/xvdb           
Mount Options        : rw,relatime,attr2,inode64,noquota
Inode Size           : 512                 
Disk Space Free      : 2.0GB               
Total Disk Space     : 2.0GB               
Inode Count          : 1048576             
Free Inodes          : 1048533             
------------------------------------------------------------------------------
Brick                : Brick ip-172-31-10-167.eu-west-1.compute.internal:/data/gluster/swarm/brick1
TCP Port             : 49153               
RDMA Port            : 0                   
Online               : Y                   
Pid                  : 15366               
File System          : xfs                 
Device               : /dev/xvdb           
Mount Options        : rw,relatime,attr2,inode64,noquota
Inode Size           : 512                 
Disk Space Free      : 2.0GB               
Total Disk Space     : 2.0GB               
Inode Count          : 1048576             
Free Inodes          : 1048533             
------------------------------------------------------------------------------
Brick                : Brick ip-172-31-28-55.eu-west-1.compute.internal:/data/gluster/swarm/brick1
TCP Port             : 49153               
RDMA Port            : 0                   
Online               : Y                   
Pid                  : 14197               
File System          : xfs                 
Device               : /dev/xvdb           
Mount Options        : rw,relatime,attr2,inode64,noquota
Inode Size           : 512                 
Disk Space Free      : 2.0GB               
Total Disk Space     : 2.0GB               
Inode Count          : 1048576             
Free Inodes          : 1048533             

Так что из вышесказанного вроде все нормально. Но когда я монтирую том на третьем сервере, объем показывает, что он имеет емкость только 2G вместо 4G:

ubuntu@ip-172-31-13-169:~$ mount
ip-172-31-10-167.eu-west-1.compute.internal:/swarm on /swarm/volumes/mytest type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072,_netdev)

ubuntu@ip-172-31-13-169:~$ df -h
Filesystem                                          Size  Used Avail Use% Mounted on
ip-172-31-10-167.eu-west-1.compute.internal:/swarm  2.0G   53M  2.0G   3% /swarm/volumes/mytest
ubuntu@ip-172-31-13-169:~$ 

И, конечно же, громкость заполняется, если я напишу на нее 2G.

Если я создам сразу несколько небольших файлов, я увижу, что они распределяются между brick0 и brick1.

Все инстансы AWS EC2 работают под управлением Ubuntu LTS 16.04 AMD64 HVM EBS. Испытанные версии Gluster - 3.12.7 и 4.0.1.

Что мне не хватает?

Когда вы создали gluster volume, вы перечислили такие кирпичи, как server.167 / brick0 server.167 / brick1 server.55 / brick0 server.55 / brick1

Если это первый случай, когда набор реплик находится на том же сервере, я бы поспорил, что хранилище сокращено вдвое на сервере, а не в пуле, потому что сервер не может реплицировать более 2 ГБ.

Если да, перестройте том, но перечислите кирпичи, например server.167 / brick0 server.55 / brick0 server.167 / brick1 server.55 / brick1.