meta data for this page
Неравномерное назначение кэш дисков
Иногда в силу работы встроенного механизма распределения нагрузки журналы на 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% - имя кластера Р-Хранилище.
Причины
- Изменение конфигурации Р-Хранилища после назначения кэш-дисков;
- Добавление дисков хранения после назначения кэш-дисков;
- Слишком маленькое количество SSD дисков на систему;
- Слишком маленький суммарный объем SSD дисков по отношению к объему HDD дисков;
Восстановление
Вариант с изменением размера журнала
- Рассчитать количество журналов которые должны быть размещены на каждом SSD диске по формуле %КОЛ-ВО CS сервисов% / %КОЛ-ВО SSD для кэширования%;
- Рассчитать оптимальный объем журнала для каждого
cs
сервиса по формуле: %объем SSD% * 0.8 / %Кол-во HDD на каждый SSD%; - Проверить сколько журналов расположено на каждом SSD диске с ролью “Кэш” можно командой
ls -al /vstorage/*/journal
. - Необходимо удалить все
cs
сервисы, журналы которых ошибочно оказались на этих же дисках а не на SSD; - Далее на каждом SSD диске необходимо оставить количество журналов, не превышающее расчетное. Для этого необходимо:
- Получить список журналов SSD диска командой
ls -ls /vstorage/*/journal
; - Получить соотношение идентификатора
cs
сервиса и локального диска командойvstorage list-services -c %CLUSTER_NAME%
; - Удалить из консоли веб-управления
cs
сервисы для достижения необходимого количества журналов на каждом SSD диске;
- Очистить SSD диски от следующих ненужных файлов:
- Изменить размер журнала всех созданных сервисов
cs
командой:for f in /vstorage/*/cs; do echo f$; vstorage -c %cluster_name% configure-cs -r $f -s %размер журнала%; sleep 1m; done
- На свободных HDD дисках создать новые
cs
сервисы по одному; - Проверить равномерность распределения файлов журнала и при необходимости:
- Удалить
cs
, журнал которого назначен не на тот SSD; - Для выравнивания занятого пространства запустить скрипт изменения размера журнала;
- После достижения одинакового количества файлов журналов на всех SSD дисках при всех созданных
cs
сервисах необходимо:- Проверить равномерность расхода дисковой емкости SSD, командой
df -h
- В случае если занятая дисковая емкость на SSD дисках распределена не равномерно запустить скрипт изменения размера журнала;
Вариант с пересозданием файла журнала из CLI
- Удалить старый журнал созданный не в том месте, командой: ``vstorage -c имякластера configure-cs -r /vstorage/IDчанкСервисаИЛИIDдискаSSDcКЭШ/journal/имяЖурнала -d``
- Рассчитать размер журнала по формуле: Полезная емкость SSD (372ГБ) * 0.8 (80%) = 297ГБ / 4(HDD на один SSD диск)=74ГБ
- Создать журнал вручную, командой:
vstorage -c имя кластера configure-cs -r /vstorage/IDчанкСервиса/cs -a /vstorage/IDдискаSSDcКЭШ/journal/ИмяФайлажурналаСчанкаСервиса -s 75776
, где 75776- размер журнала в МБ.