Проблема: том 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.