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

Как ускорить ребалансировку MogileFS?

Я занимаюсь обновлением хранилища для нашего кластера MogileFS и использую функции перебалансировки и утечки устройств для переноса данных с одного набора устройств на другой. У нас есть около 55 ТБ на одном наборе устройств, которые я хотел бы перенести на новый набор устройств, бесплатно на 88 ТБ.

У меня есть следующие настройки политики:

[ashinn@mogile2 ~]$ sudo mogadm rebalance settings
             rebal_policy = from_devices=2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028 to_hosts=5,6,7 leave_in_drain_mode=1

Но, похоже, он сбрасывает / балансирует только одно устройство за раз:

[ashinn@mogile2 ~]$ sudo mogadm rebalance status
Rebalance is running
Rebalance status:
             bytes_queued = 250755303323
           completed_devs = 
              fids_queued = 7785000
                    limit = 0
             sdev_current = 2005
             sdev_lastfid = 1444986524
               sdev_limit = none
              source_devs = 2016,2028,2007,2013,2012,2022,2008,2001,2024,2017,2023,2025,2009,2015,2006,2026,2021,2020,2019,2010,2027,2004,2018,2014,2002,2011,2003
            time_finished = 0
             time_started = 1340960590
             time_stopped = 0

При таких темпах потребуется 4 месяца, чтобы слить все старые устройства и перенастроить их на новые! Вот список устройств, которые я пытаюсь слить, и добавленных новых. dev2001 - dev2028 настроены на слив и перебалансировку для всех 3 хостов (включая новые устройства dev2029 - dev2036 на хосте с идентификатором 6):

[ashinn@mogile2 ~]$ sudo mogadm device list | grep dev20
dev2001: drain      2018.942 731.216 2750.158
dev2002: drain      2022.452 727.706 2750.158
dev2003: drain      2022.311 727.848 2750.158
dev2004: drain      2022.211 727.947 2750.158
dev2005: drain      1472.550 1277.608 2750.158
dev2006: drain      2022.135 728.023 2750.158
dev2007: drain      2022.139 728.020 2750.158
dev2008: drain      2022.246 727.912 2750.158
dev2009: drain      2022.369 727.789 2750.158
dev2010: drain      2022.191 727.967 2750.158
dev2011: drain      2022.694 727.464 2750.158
dev2012: drain      2022.256 727.902 2750.158
dev2013: drain      2022.117 728.041 2750.158
dev2014: drain      2022.271 727.887 2750.158
dev2015: drain      2021.590 728.568 2750.158
dev2016: drain      2021.499 728.659 2750.158
dev2017: drain      2021.712 728.446 2750.158
dev2018: drain      2021.191 728.967 2750.158
dev2019: drain      2020.846 729.312 2750.158
dev2020: drain      2021.758 728.400 2750.158
dev2021: drain      2021.490 728.668 2750.158
dev2022: drain      2021.217 728.941 2750.158
dev2023: drain      2020.922 729.236 2750.158
dev2024: drain      2019.909 730.249 2750.158
dev2025: drain      2020.503 729.655 2750.158
dev2026: drain      2020.807 729.352 2750.158
dev2027: drain      2021.056 729.103 2750.158
dev2028: drain      2020.487 729.671 2750.158
dev2029: alive      182.120 10818.996 11001.116
dev2030: alive      184.549 10816.567 11001.116
dev2031: alive      185.268 10815.849 11001.116
dev2032: alive      182.004 10819.112 11001.116
dev2033: alive      189.295 10811.821 11001.116
dev2034: alive      183.199 10817.917 11001.116
dev2035: alive      178.625 10822.491 11001.116
dev2036: alive      180.549 10820.567 11001.116

Тюнинг уже пробовали queue_rate_for_rebal, queue_size_for_rebal, и рабочие реплики.

Мы сделали это однажды, используя зоны в двух центрах обработки данных, и репликация была НАМНОГО быстрее. Мы надеялись, что ребалансировка будет работать так же, как репликация. Но с такой скоростью, похоже, будет быстрее помечать старые устройства как мертвые для репликации файлов.

Есть ли другие способы ускорить перебалансировку (например, несколько устройств одновременно) без необходимости отмечать устройства как мертвые?