meta data for this page
  •  

This is an old revision of the document!


Неравномерное назначение кэш дисков

Иногда в силу работы встроенного механизма распределения нагрузки журналы на SSD дисках в системе хранения Р-Хранилище создаются не равномерно или вообще не попадают на SSD а находят место на том-же диске.

Симптомы

Для простой проверки распределения журналов по дискам необходимо выполнить команду:

 ls -alh /vstorage/*/journal 

Пример вывода на снимке экрана ниже:

Также на диске могут быть обнаружены “мертвые” ссылки на чанк серверы которые уже удалены, пример такого сервера на снимке ниже:

Тип диска проще всего определить по его объему командой

df -h

Пример вывода на снимке экрана ниже:

В данном случае расположение журналов следующее:

  • на диске /dev/sdb1 расположены два журнала для чанк сервисов №1025 и №1026;
  • на диске /dev/sdd1 расположен журнал для чанк сервиса 1027;
  • на диске /dev/sdc1 расположен журнал для чанк сервиса 1028;

Такое распределение является нормальным, так как сервер оснащен тремя кэширующими дисками и четырьмя дисками для хранения.

Проверить соответствие чанк серверов физическим дискам необходимо командой:

vstorage list-services -c %CLUSTER_NAME%

Где:

  • %CLUSTER_NAME% - имя кластера Р-Хранилище.

Причины

  • Изменение конфигурации Р-Хранилища после назначения кэш-дисков;
  • Добавление дисков хранения после назначения кэш-дисков;

Восстановление

  1. Для начала необходимо добиться равномерного распределения жестких дисков по SSD дискам.
  2. Проверить сколько журналов расположено на каждом кэш-диске можно командой ls -al /vstorage/*/journal.
  3. При необходимости нужно удалить с SSD дисков:
    1. журналы к которым нет симлинков;
    2. симлинки которые никуда не ведут;
    3. журналы cs сервисов которые уже удалены;
  4. Рассчитать полезный объем журнала для каждого диска по формуле: %объем SSD% * 0.8 / %Кол-во HDD на каждый SSD%.
  5. Изменить размер журнала сервисов cs командой:
    for f in /vstorage/*/cs; 
      do 
        echo f$; 
        vstorage -c %cluster_name% configure-cs -r $f -s %размер журнала%; 
        sleep 1m; 
      done 
  6. Если на первом этапе не все журналы были созданы, то изменение размера журнала должно было освободить дополнительное пространство для создания новых журналов. В данном случае необходимо создать оставщиеся cs сервисы и выполнить скрипт еще раз.