Кластер FastCFS состоит из трёх компонентов: fauth (сервис аутентификации), fdir (сервис каталога) и fstore (система хранения данных). Ниже приведены методы и шаги по расширению каждого из этих компонентов.
Данные пользователей и права доступа в сервисе аутентификации хранятся в fdir. Сервис работает в режиме горячего резерва, рекомендуется использовать от двух до трёх серверов (узлов). При отказе основного узла система автоматически переключается на резервный узел.
Поскольку сам сервис аутентификации данные не хранит, его можно увеличивать или уменьшать в зависимости от потребностей.
Сервис каталога FastCFS используется для управления метаданными файлов. В настоящее время поддерживаются группы серверов, используемые обычные серверы (например, с 64 ГБ оперативной памяти и SSD) могут поддерживать миллиарды файлов.
Подробнее см. Обзор высокопроизводительного масштабируемого распределённого сервиса каталога FastDIR.
Рекомендуется развернуть fdir на трёх серверах. Количество серверов fdir может быть увеличено или уменьшено в соответствии с требованиями. Fdir будет автоматически синхронизировать данные на основе binlog.## 3. Fstore (Система хранения данных)
Fstore использует групповое хранение содержимого файлов. Для удобства расширения FastCFS ввел концепцию групп данных (DG).
Фрагменты файлов размером 4 МБ маршрутизируются в соответствующие группы данных на основе их хеш-кода (идентификатор файла + смещение блока). Формула расчета следующая:
DGI = HashCode % DGC
DGI: Индекс группы данных
HashCode: Хеш-код фрагмента файла
DGC: Общее количество групп данных
Группы данных являются логическими или виртуальными понятиями, которые отображаются на физические или реальные понятия — группы серверов (SG). Это отношение многих ко одному, то есть одна группа серверов (SG) может содержать несколько групп данных (DG).
Общее количество групп серверов в кластере fstore обозначается как SGC.
Отношение DG и SG настраивается в конфигурационном файле cluster.conf системы fstore. Пример конфигурации (для простоты показана только одна группа серверов с тремя репликами):
# SGC
server_group_count = 1
# DGC
data_group_count = 256
# Настройка SG1
[server-group-1]
server_ids = [1-3]
data_group_ids = [1, 256]
Расширение кластера fstore можно выполнять путем добавления одной группы серверов за раз. Когда размер кластера небольшой (например, SGC ≤ 4), рекомендуется удвоить количество групп серверов (SGC).Число групп данных (DGC) после установки остаётся постоянным, за исключением случаев создания нового кластера. Поэтому при первоначальной настройке кластера следует заранее определить общее число групп данных (DGC), учитывая прогноз развития бизнеса.Например, если предположить, что через пять лет потребуется 20 групп серверов (SGC), чтобы обеспечить эффективное использование многоядерных процессоров, каждая группа серверов должна обслуживать 32 группы данных (DG), то DGC составит 20 * 32 = 640. Чтобы максимально использовать производительность, DGC округляется до ближайшей степени двойки, то есть до 1024. Приведение ниже дружественного совета: рекомендуется в производственной среде установить значение DGC как минимум равным 256.
Динамическое расширение fstore состоит из двух шагов модификации файла cluster.conf:
После выполнения вышеописанных шагов необходимо распространить изменения в cluster.conf на все серверы fstore и fuseclient, а затем перезапустить эти компоненты. Рекомендованный порядок перезапуска следующий:
1. Остановить fuseclient
2. Перезапустить fstore
3. Запустить fuseclient
Пример того, как увеличить количество SG с одного до двух (оба используют три реплики) и как это отразится на конфигурации cluster.conf:
Модифицированный фрагмент cluster.conf выглядит так:
# Количество групп серверов увеличивается с OnClickListener.ONE до OnClickListener.TWO
server_group_count = 2
# Количество данных групп
data_group_count = 256
```# Изменение отображения DG, перемещение [129, 256] в SG2
[server-group-1]
server_ids = [1-3]
data_group_ids = [1, 128]
# Настройка SG2
# Необходимо добавить серверы [1-3] для синхронизации существующих данных
[server-group-2]
server_ids = [1-6]
data_group_ids = [129, 256]
Разместите cluster.conf
на всех серверах fstore
и fuseclient
, после чего перезапустите fstore
и fuseclient
.
Приступайте ко второму шагу после завершения синхронизации новых SG.
fs_cluster_stat
для проверки состояния fstore
, например:# Просмотр активных серверов, убедитесь что все серверы имеют состояние ACTIVE, проверьте последнюю строку вывода
fs_cluster_stat -A
# Просмотр неактивных серверов, убедитесь что вывод пустой
fs_cluster_stat -N
# Проверка активности конкретной группы данных (например ID=256)
fs_cluster_stat -g 256
# Просмотр справочной информации
fs_cluster_stat -h
Модифицированный фрагмент cluster.conf
выглядит следующим образом:
# Количество групп серверов
server_group_count = 2
# Количество данных групп
data_group_count = 256
[server-group-1]
server_ids = [1-3]
data_group_ids = [1, 128]
# Удаление серверов [1-3]
[server-group-2]
server_ids = [4-6]
data_group_ids = [129, 256]
Разместите cluster.conf
на всех серверах fstore
и fuseclient
, после чего перезапустите fstore
и fuseclient
.### Удаление перемещённых данных
После завершения миграции данных, чтобы освободить место, занятое перемещёнными данными, начиная с версии V3.2, можно использовать параметр --migrate-clean
при запуске fs_serverd
, пример использования:
/usr/bin/fs_serverd /etc/fastcfs/fstore/server.conf restart --migrate-clean
Обратите внимание: Для предотвращения случайных действий при запуске fs_serverd
не следует использовать --migrate-clean
!* Дополнительно:
fcfs.sh
. Инструкция по использованию см. в FastCFS операционных инструментах.fstore
и fuseclient
, могут привести к недоступности сервиса. Рекомендуется выполнять эти шаги в период низкой нагрузки на бизнес.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )