단일 Gluster 피어 재조정이 일관되지 않음

단일 Gluster 피어 재조정이 일관되지 않음

분산 모드에서 작동하는 볼륨에 대해 개별 브릭이 있는 5개의 Gluster 서버 풀이 있습니다. 여기에 다른 데이터 센터에 개별 브릭이 있는 추가 5개 피어를 추가하여 이 볼륨 모드를 다음 브릭 공식을 사용하여 "분산-분산"으로 만듭니다. 2 x (3 + 2) = 10.

10개 피어로 구성된 클러스터를 완전히 재조정한 후 일부 테스트에서 pool-2의 5개 피어가 모두 클러스터에서 연결이 끊어졌을 때 첫 번째 풀(pool-1이라고 함)에서 일부 파일이 누락되는 것을 발견했습니다. 제가 이해한 바에 따르면, 각 개별 풀에는 분산 형식의 자체 전체 데이터 세트가 있어야 하기 때문에 이런 일이 발생해서는 안 됩니다. 내가 틀렸다면 정정해주세요!

초기 재조정 중에 내가 알아차린 것은(관련이 있다고 가정하고 있지만 증명할 Gluster 전문 지식이 없음) 풀 #2의 노드 #4가 몇 초 만에 재조정의 "완료" 단계에 들어간다는 것입니다. 다른 노드는 스캔 부분까지 완료하는 데 24시간 이상이 필요합니다. 또한 이 노드에는 재조정, 건너뛰기 또는 실패한 파일이 없는 정확히 2개의 "스캔된" 파일이 나열됩니다.

                                    Node Rebalanced-files          size       scanned      failures       skipped               status  run time in h:m:s
                               ---------      -----------   -----------   -----------   -----------   -----------         ------------     --------------
                               localhost              159       231.4MB        269931             0             0          in progress        3:10:26
                               pool-1-2                 0        0Bytes             0             0             0          in progress        3:10:26
                               pool-1-3                 0        0Bytes             0             0             0          in progress        3:10:25
                               pool-1-4                 0        0Bytes             0             0             0          in progress        3:10:26
                               pool-1-5                 0        0Bytes             0             0             0          in progress        3:10:26
                               pool-2-1                 0        0Bytes             0             0             0          in progress        3:10:26
                               pool-2-2                 0        0Bytes             0             0             0          in progress        3:10:26
                               pool-2-3                 0        0Bytes             0             0             0          in progress        3:10:26
                               pool-2-4                 0        0Bytes             2             0             0            completed        0:00:18
                               pool-2-5                 0        0Bytes             0             0             0          in progress        3:10:26
Estimated time left for rebalance to complete :       15:08:05
volume rebalance: dev-volume: success

pool-2-4의 재조정 로그를 자세히 살펴보면 다음과 같은 흥미로운 메시지를 발견했습니다.

[2020-08-20 21:24:20.623006] I [MSGID: 109081] [dht-common.c:4209:dht_setxattr] 0-dev-volume-dht: fixing the layout of /
...
[2020-08-20 21:24:29.720716] I [MSGID: 0] [dht-rebalance.c:3737:gf_defrag_total_file_cnt] 0-dev-volume-dht: Total number of files = 1684196
[2020-08-20 21:24:29.720725] E [MSGID: 0] [dht-rebalance.c:3900:gf_defrag_start_crawl] 0-dev-volume-dht: Failed to get the total number of files. Unable to estimate time to complete rebalance.
...
[2020-08-20 21:24:29.725724] I [dht-rebalance.c:2745:gf_defrag_process_dir] 0-dev-volume-dht: migrate data called on /
[2020-08-20 21:24:29.725828] W [dict.c:416:dict_set] (-->/usr/lib64/glusterfs/3.10.1/xlator/cluster/distribute.so(+0x42f51) [0x7fed71172f51] -->/lib64/libglusterfs.so.0(dict_set_int32+0x2b) [0x7fed78af14eb] -->/lib64/libglusterfs.so.0(dict_set+0xe6) [0x7fed78aefc56] ) 0-dict: !this || !value for key=readdir-filter-directories [Invalid argument]
[2020-08-20 21:24:29.725845] E [MSGID: 109003] [dht-common.c:4917:dht_opendir] 0-dev-volume-dht: Failed to set dictionary value :key = readdir-filter-directories, ret:-1
[2020-08-20 21:24:32.718807] I [dht-rebalance.c:2959:gf_defrag_process_dir] 0-dev-volume-dht: Migration operation on dir / took 2.99 secs
[2020-08-20 21:24:32.718898] W [dict.c:416:dict_set] (-->/usr/lib64/glusterfs/3.10.1/xlator/cluster/distribute.so(+0x42f51) [0x7fed71172f51] -->/lib64/libglusterfs.so.0(dict_set_int32+0x2b) [0x7fed78af14eb] -->/lib64/libglusterfs.so.0(dict_set+0xe6) [0x7fed78aefc56] ) 0-dict: !this || !value for key=readdir-filter-directories [Invalid argument]
[2020-08-20 21:24:32.723301] I [dht-rebalance.c:3994:gf_defrag_start_crawl] 0-DHT: crawling file-system completed
...
[2020-08-20 21:24:32.723730] I [MSGID: 109028] [dht-rebalance.c:4277:gf_defrag_status_get] 0-dev-volume-dht: Files migrated: 0, size: 0, lookups: 2, failures: 0, skipped: 0
[2020-08-20 21:24:32.723894] W [glusterfsd.c:1329:cleanup_and_exit] (-->/lib64/libpthread.so.0(+0x7dc5) [0x7fed77958dc5] -->/usr/sbin/glusterfs(glusterfs_sigwaiter+0xe5) [0x556351afaf85] -->/usr/sbin/glusterfs(cleanup_and_exit+0x6b) [0x556351afadfb] ) 0-: received signum (15), shutting down

다른 각 노드는 "총 파일 수"가 0으로 시작하며 각 하위 폴더의 각 파일은 메시지와 함께 재조정되는 것을 명확하게 볼 수 있습니다.

[2020-08-12 19:56:49.614327] I [dht-rebalance.c:2745:gf_defrag_process_dir] 0-dev-volume-dht: migrate data called on /data/jobs
[2020-08-12 19:56:49.820702] I [MSGID: 109081] [dht-common.c:4209:dht_setxattr] 0-dev-volume-dht: fixing the layout of /data/jobs/201501
[2020-08-12 19:56:50.294380] I [dht-rebalance.c:2745:gf_defrag_process_dir] 0-dev-volume-dht: migrate data called on /data/jobs/201501
[2020-08-12 19:56:50.518000] I [MSGID: 109081] [dht-common.c:4209:dht_setxattr] 0-dev-volume-dht: fixing the layout of /data/jobs/201501/00
[2020-08-12 19:56:50.863319] I [dht-rebalance.c:2745:gf_defrag_process_dir] 0-dev-volume-dht: migrate data called on /data/jobs/201501/00
[2020-08-12 19:56:51.116676] I [MSGID: 109081] [dht-common.c:4209:dht_setxattr] 0-dev-volume-dht: fixing the layout of /data/jobs/201501/02

!value for key=readdir-filter-directories [Invalid argument]다른 노드에서도 메시지를 받지 못합니다 .

Gluster 마운트의 데이터 디렉터리에 있는 모든 파일의 크기 합계를 확인하면(분산되어 있으므로 데이터의 전체 표현이 아님) 상당한 양의 파일이 있음을 분명히 알 수 있습니다.

[root@pool-2-4 dev-volume]# du -csh *
8.0K    backups
158G    data
25M     etc
8.0K    lost+found
38G     static
783M    bin
196G    total

재조정 로그에 표시되는 오류는 풀 2가 오프라인일 때 풀 1에 파일이 누락되는 문제를 나타낼 수 있습니까? 완전히 별개의 문제일 수도 있나요? 이것에 대한 나의 전체 이해가 잘못 되었습니까?

이 질문이 다소 모호한 점에 대해 사과드리며, 통찰력을 제공해 주실 수 있는 모든 분들께 감사의 말씀을 드립니다.

관련 정보