1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/fastdfs100-FastCFS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
FAQ-zh_CN.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 15.03.2025 23:09 7748a78

Часто задаваемые вопросы

1. Минимальные требования к конфигурации сервера

2 ядра CPU, 4 ГБ оперативной памяти, 10 ГБ жесткого диска

2. Нарушение сетевого соединения

Если в логах появляются записи с ошибками типа Connection refused или Transport endpoint is not connected. Проверьте настройки брандмауэра. В FastCFS есть 9 портов служб, эти порты должны быть открыты:

  • fdir
    • По умолчанию порт кластера 11011
    • По умолчанию порт службы 11012
  • fvote
    • По умолчанию порт кластера 41011
    • По умолчанию порт службы 41012
  • fauth
    • По умолчанию порт кластера 31011
    • По умолчанию порт службы 31012
  • fstore
    • По умолчанию порт кластера 21014
    • По умолчанию порт реплики 21015
    • По умолчанию порт службы 21016

3. Есть ли порядок запуска сервисов?

Да. Сервисы следует запускать в следующем порядке: fvote (необязательно), fdir, fauth (необязательно), fstore, fuseclient.

4. Поддерживает ли FastCFS восстановление данных с одного диска?

Поддерживается.
Механизм реализации: получение данных с других серверов группы для восстановления всех данных на указанном жестком диске (то есть пути хранения).
Сценарий использования: замена поврежденного жесткого диска новым или переформатирование диска по какой-либо причине.
После восстановления одного диска при перезапуске fs_serverd необходимо использовать командную строку с параметром --data-rebuild <store_path>,
где store_path — это путь хранения, соответствующий замененному жесткому диску.
```## 5. Как FastCFS защищает от разделенного режима работы (split-brain)?

При выборе лидера/мастера используется механизм большинства голосов, количество узлов в группе лучше сделать нечетным (например, три). Настройка quorum имеет значение auto по умолчанию, что означает активацию при нечетном количестве узлов и деактивацию при четном. Подробнее см. конфигурационный файл conf/full/cluster.conf.

В версии v3.4 был введен общий узел выбора, который позволяет защититься от разделенного режима работы даже при четном количестве узлов (например, двух реплик). Дополнительные сведения см. в документации по конфигурации.


## 6. При использовании нескольких реплик (например, трех) fdir и fstore после выключения и перезапуска не могут записывать данные

Чтобы обеспечить согласованность данных, если время простоя превышает параметр max_shutdown_duration (по умолчанию 300 секунд), необходимо дождаться того момента, когда все остальные серверы группы станут доступными для выбора мастера/лидера.

Например, при трёх репликах, если все три сервера были выключены более чем на max_shutdown_duration и некоторые серверы не были запущены, выбор мастера/лидера невозможен, что препятствует записи данных. В этом случае при запуске fdir_serverd необходимо использовать командную строку с параметром --force-master-election, а при запуске fs_serverd — с параметром --force-leader-election


```markdown
faststore требует компиляции исходного кода. Измените make.sh, заменив
CFLAGS='-Wall' 
на
CFLAGS='-Wall -DFS_DUMP_SLICE_FOR_DEBUG=32'.
Запустите fs_serverd; данные будут экспортированы в $base_path/data/dump/slice.index, например:
/opt/fastcfs/fstore/data/dump/slice.index

Формат файла:
Тип ФайлID блок_предел слик_предел слик_длина данных длина данных CRC32

Вы можете использовать команду diff для сравнения двух узлов одного сервера, чтобы проверить, одинаковы ли экспортированные данные.

Примечание: -DFS_DUMP_SLICE_FOR_DEBUG=32 этот компилированный параметр предназначен только для тестового окружения для проверки согласованности данных. Не используйте его в производственной среде.

8. Fuse клиент видит больше места, чем указано в лимитах хранилища

Это происходит потому что клиент не активировал auth. Установите значение auth_enabled в true в конфигурационном файле /etc/fastcfs/auth/auth.conf, затем перезапустите fcfs_fused для применения изменений.

Подсказка: Информация по настройке службы аутентификации доступна в документации по аутентификации.

9. При использовании FastCFS как backend-хранилища NFS возникают ошибки при монтировании NFS клиента

Ошибка: reason given by server: No such file or directory

Решение:

Для NFS v3 используется путь, указанный в конфигурации сервера, например: /opt/fastcfs/fuse, а для v4 используется базовый путь, указанный в конфигурации сервера, и монтирование должно происходить через /.По умолчанию монтирование будет осуществляться с использованием последней версии протокола NFS. Пример команды монтирования (при условии поддержки v4):

mount -t nfs -onolock 172.16.168.131:/ /mnt/nfs

Пример команды монтирования для NFS v3:

mount -t nfs -onolock 172.16.168.131:/opt/fastcfs/fuse /mnt/nfs

Пример команды монтирования для NFS v4:

mount -t nfs -onolock,nfsvers=4 172.16.168.131:/ /mnt/nfs

Подсказка:

  • Для CentOS 6 требуется использование NFS v3 для монтирования
  • В /etc/exports необходимо установить fsid=0, например: /opt/fastcfs/fuse 172.16.168.130(fsid=0,rw,sync,no_root_squash,no_all_squash)

10. Почему после удаления достаточного количества данных место на диске не уменьшается?

FastCFS использует trunk file для распределения пространства. В настоящее время trunk file увеличивается, но не освобождается. После удаления данных они могут быть повторно использованы, поэтому через команду df вы увидите увеличение доступного пространства на fuse клиенте.

11. Как полностью очистить данные faststore?В некоторых специальных случаях может потребоваться полное удаление данных faststore. Это можно сделать путём удаления системной директории faststore (base_path, указанного в конфигурации server.conf, по умолчанию это /opt/fastcfs/fstore) и директорий хранения пользовательских данных (по умолчанию это /opt/faststore/data, если используются несколько дисков, то каждую директорию следует удалить отдельно). Пример команды удаления (удалённые файлы восстановлению не подлежат, убедитесь перед выполнением):

rm -rf /opt/fastcfs/fstore /opt/faststore/data

12. Как проверить отсутствие доступа в логах?

В данном тексте нет необходимости в переводе, так как он уже на русском языке.Пример ошибки в файле логов /opt/fastcfs/fcfs/logs/fcfs_fused.log:

[2023-02-25 06:39:08] ОШИБКА — файл: client_proto.c, строка: 607, fdir сервер 192.168.3.210:11012 ответственный сообщение: статус ответа 1, информация об ошибке: Действие недопустимо

Проверка проблемы:

Просмотрите лог-файлы /opt/fastcfs/fdir/logs/fdir_serverd.log на каждом fdir сервере, найдите соответствующую информацию об ошибке, а затем используйте последнюю версию fdir_stat для просмотра полного пути (название файла) и проведите проверку согласно владельцу файла или директории, правам доступа, пользователю и его группе.

Пример запроса по inode файла или директории:

fdir_stat -Fn fs 9007199660325177

Пример запроса по inode родительской директории + имени поддиректории или файла:

fdir_stat -Fn fs 9007199667318991 test

Подсказка: если используется установка пакетами, rpm-пакет с программой fdir_stat называется fastDIR-client, deb-пакет — fastdir-client.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/fastdfs100-FastCFS.git
git@api.gitlife.ru:oschina-mirror/fastdfs100-FastCFS.git
oschina-mirror
fastdfs100-FastCFS
fastdfs100-FastCFS
master