Вопрос или проблема
У меня есть два кластера Ceph Pacific.
ceph --version
ceph version 16.2.10-160.el8cp (6977980612de1db28e41e0a90ff779627cde7a8c) pacific (stable)
(это 5.3.2)
Между двумя сайтами есть двойный набор репликации (названные гондор и рохан ниже).
Я новичок в Ceph и репликациях, я начал синхронизацию 3 дня назад, используя эту команду с стороны рохана:
radosgw-admin data sync status --bucket=bm.test.sync.bucket1 --source-zone=gondor
Теперь с обеих сторон, каждый раз, когда я выдаю команду radosgw-admin sync status, я получаю следующие два результата:
с гондора
realm UUID (middleearth)
zonegroup UUID (thirdage)
zone UUID (gondor)
current time 2024-12-19T07:15:45Z
zonegroup features enabled:
disabled: resharding
metadata sync no sync (zone is master)
data sync source: UUID (rohan)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
data is behind on 3 shards
behind shards: [13,17,52]
oldest incremental change not applied: 2024-12-19T08:15:32.613647+0100 [13]
с рохана
realm UUID (middleearth)
zonegroup UUID (thirdage)
zone UUID (rohan)
current time 2024-12-19T07:34:55Z
zonegroup features enabled:
disabled: resharding
metadata sync syncing
full sync: 0/64 shards
incremental sync: 64/64 shards
metadata is caught up with master
data sync source: UUID (gondor)
syncing
full sync: 0/128 shards
incremental sync: 128/128 shards
123 shards are recovering
recovering shards: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127]
Вопросы :
- синхронизируются ли мои кластеры? (то есть, получу ли я меньше “восстанавливаемых шардов” в какой-то момент?)
Я понимаю, что существует латентность репликации и небольшие расхождения в последних объектах.
Тем не менее, мои бакеты, похоже, не имеют одинакового содержимого с обеих сторон.
В одном конкретном бакете
- с стороны гондора: два объекта: один с июня 2022 года, один пустой с января 2024 года
- с стороны рохана только один пустой с января 2024 года
Я думал, что вышеуказанная команда синхронизирует бакет. (radosgw-admin data sync status --bucket=bm.test.sync.bucket1 --source-zone=gondor
)
Может ли быть достигнута синхронизация? Если да, то как?
Ответ или решение
Синхронизация S3-ведер в кластерах Ceph: Анализ текущего состояния
Вопрос о состоянии синхронизации ваших S3-ведер в двух кластерах Ceph Pacific (version 16.2.10) требует внимания к деталям и понимания механизма репликации данных. Давайте проанализируем текущую ситуацию на основе предоставленной информации.
1. Проверка состояния синхронизации
На момент выполнения команды radosgw-admin data sync status
в обоих кластерах (Гондор и Рохан), вы получаете следующие результаты:
-
Гондор:
- Синхронизация выполняется (
syncing
). - Полная синхронизация: 0 из 128 шаров.
- Инкрементальная синхронизация: 128 из 128 шаров.
- Данные отстают на 3 шара.
- Синхронизация выполняется (
-
Рохан:
- Синхронизация выполняется (
syncing
). - Полная синхронизация: 0 из 64 шаров.
- Инкрементальная синхронизация: 64 из 64 шаров.
- Данные отстают: 123 шара на восстановлении.
- Синхронизация выполняется (
2. Ответ на вопрос о синхронизации
Согласно предоставленным данным, ваши кластеры синхронизируются, однако, необходимо отметить:
- Отставание данных: В Гондоре вы видите, что три шара находятся в состоянии отставания, что может указывать на временные задержки, а в Рохане — 123 шара находятся в процессе восстановления. Это предполагает, что синхронизация все еще идет, и значения "восстанавливаются". Если вы продолжите наблюдение, ожидается, что количество "восстанавливаемых" шаров будет уменьшаться, если не будет поступать новое изменение данных.
3. Причина расхождений в содержимом ведер
Вы отметили, что содержимое ведер не совпадает между кластерами. Причины таких расхождений могут быть:
-
Проблемы с синхронизацией: Ваша команда
radosgw-admin data sync status --bucket=bm.test.sync.bucket1 --source-zone=gondor
только проверяет статус синхронизации, но не инициирует ее. Если данных в ведре на стороне Гондора больше, это может быть связано с тем, что изменения не были синхронизированы правильно, или что в процессе репликации возникли ошибки. -
Временные метки: Убедитесь, что метки времени объектов синхронизируются правильно; это может повлиять на их присутствие в конечных ведрах.
4. Как достичь успешной синхронизации?
Чтобы улучшить процесс синхронизации и гарантировать, что данные будут согласованы между обоими кластерами, рекомендуется:
-
Проверьте логи Ceph: Исследуйте системные логи на предмет ошибок синхронизации. Это поможет диагностировать возможные проблемы.
-
Снижение задержек: Убедитесь, что сетевые задержки между кластерами минимальны. Оптимизация сети может значительно помочь в процессе синхронизации данных.
-
Инициация повторной синхронизации: На данный момент, если проблема сохраняется, вы можете повторно инициировать синхронизацию данных вручную для конкретного ведра с помощью команды:
radosgw-admin data sync start --bucket=bm.test.sync.bucket1 --source-zone=gondor
-
Контроль состояния: Регулярно проверяйте статус синхронизации, чтобы быть уверенным, что процесс идет правильно.
Заключение
Ваша ситуация требует внимательного подхода к мониторингу и анализу процессов синхронизации данных между кластерами Ceph. Убедитесь, что вы следите за статусом и применяете необходимые методы для устранения проблем с синхронизацией. С правильными действиями вы сможете добиться консистентности данных между вашими ведрами на обоих кластерах.