Монтирование CephFS на CentOS 7 — клиент (часть 3)
CephFS можно подключить на клиенте CentOS 7 тремя способами: через kernel driver (mount -t ceph), через ceph-fuse (FUSE) и через автозагрузку в /etc/fstab. В статье показаны подготовка клиента, установка утилит, создание MDS и pools, примеры команд для монтирования и инструкции по устранению неполадок. В конце — контрольные списки, сценарии отказа и рекомендации по выбору метода.
Важно: команды из руководства выполняются с привилегиями root или sudo. Перед внесением изменений сделайте резервную копию конфигураций.
О чем эта инструкция
Это часть 3 серии по Ceph. Здесь — пошаговое руководство по подключению CephFS на отдельном клиенте CentOS 7 (Client2). Предполагается, что у вас уже создан Ceph-кластер (часть 1) и вы знакомы с использованием Ceph как блочного устройства (часть 2).
Ключевые варианты подключения, рассматриваемые здесь:
- Kernel driver (mount -t ceph) — подход для производительности и системных точек монтирования.
- ceph-fuse (FUSE) — полезно, если kernel-модуль недоступен или требуется изоляция в userspace.
- Автозагрузка через /etc/fstab — чтобы монтирование было устойчивым после перезагрузки.
Предварительные требования
- Существует Ceph-кластер: 1 ceph-admin, 1 ceph-mon (mon1), минимум 3 osd (osd1..osd3) — см. часть 1.
- Клиент: CentOS 7 (client2) — см. часть 2.
- У вас есть root-доступ на всех узлах или sudo-права.
Определения:
- Ceph MDS — демон метаданных для CephFS; отвечает за namespace и блокировки.
- ceph-common — пакет с утилитами клиента Ceph (mount, ceph-fuse и пр.).
Шаг 1 — Настройка узла client2
Подключитесь к client2 по SSH как root:
ssh root@client2Создайте пользователя cephuser и установите пароль:
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORDДайте пользователю cephuser право sudo без пароля:
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuserУстановите ntp, ntpdate и open-vm-tools, синхронизируйте время:
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.serviceОтключите SELinux (для тестовой среды) и отредактируйте /etc/hosts:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hostsВставьте в /etc/hosts (пример):
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
10.0.15.16 client2Проверьте связь с ceph-admin:
ping -c 3 ceph-adminШаг 2 — Установка ceph-common на client2
Добавим репозитории и установим утилиты клиента:
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum -y update
sudo yum -y install ceph-commonПакет ceph-common включает утилиты для монтирования CephFS и работы с кластером.
Шаг 3 — Настройка ceph-admin для управления client2 по SSH
На ceph-admin выполните вход и переключитесь на cephuser:
ssh root@ceph-admin
su - cephuserДобавьте конфигурацию SSH для удобства (в ~/.ssh/config):
vim ~/.ssh/configДобавьте:
Host client2
Hostname client2
User cephuserТакже проверьте /etc/hosts на ceph-admin и добавьте client2, если требуется:
sudo vim /etc/hostsДобавьте запись:
10.0.15.16 client2Скопируйте публичный ключ ceph-admin на client2, чтобы вход был без пароля:
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORDПроверьте вход по ключу:
ssh client2
Шаг 4 — Создание Ceph Metadata Server (MDS)
Для использования CephFS необходим MDS. Мы установим MDS на один из OSD (в примере — osd1) с помощью ceph-deploy.
На ceph-admin как cephuser:
ssh root@ceph-admin
su - cephuser
cd cluster/
ceph-deploy mds create osd1Подключитесь к osd1 и создайте пулы для данных и метаданных:
ssh osd1
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128Создайте файловую систему CephFS, указав названия пулов:
ceph fs new cephfs cephfs_metadata cephfs_dataПроверьте список файловых систем и статус MDS:
ceph fs ls
ceph mds statУбедитесь, что MDS запущен и активен.

Шаг 5 — Монтирование CephFS через kernel driver
Kernel-монтирование обычно даёт лучшую производительность и интеграцию с системой.
На client2 установите ceph-fuse (понадобится позже) и подготовьте ключ клиента (admin в примере):
sudo yum -y install ceph-fuseСкопируйте ключ администратора с MDS/OSD (osd1) и поставьте права:
ssh cephuser@osd1 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.keyСоздайте точку и выполните монтирование через kernel driver:
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.keyПояснение параметров:
- mon1:6789:/ — адрес монитора и корневой namespace.
- name=admin — имя клиента CephX.
- secretfile=ceph.key — файл с ключом доступа.
Проверьте точку монтирования:
sudo df -hTЧтобы отмонтировать:
umount /mnt/cephfs
Шаг 6 — Монтирование CephFS через ceph-fuse (FUSE)
FUSE полезен, если kernel-модуль недоступен или требуется запуск в пространстве пользователя.
Скопируйте конфигурацию и keyring с монитора (mon1):
sudo mkdir -p /etc/ceph/
sudo scp root@mon1:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp root@mon1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyringСоздайте точку и запустите ceph-fuse:
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuseПроверьте монтирование:
sudo df -hTДля завершения работы ceph-fuse найдите PID и отправьте сигнал SIGINT:
sudo ps -aux | grep ceph-fuse
kill -2 PID
Шаг 7 — Постоянное монтирование через /etc/fstab
Чтобы CephFS монтировался автоматически при загрузке, добавьте запись в /etc/fstab. Пример для kernel driver:
sudo vim /etc/fstabДобавьте строку:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0Примените и проверьте:
sudo mount -a
sudo df -hT
reboot
sudo df -hTПосле перезагрузки CephFS должен монтироваться автоматически.
Когда какой метод выбрать — краткая подсказка
- Kernel driver — выбрать, если нужна максимальная производительность и интеграция со стандартными инструментами ОС.
- ceph-fuse — если kernel-модуль отсутствует, вы хотите изоляцию в userspace или простоту отладки.
- fstab — для автоматического монтирования при загрузке; применять вместе с one of the above.
Резервные соображения и безопасность
- Не храните слабые права на keyring: используйте 600/640 и ограничивайте чтение.
- Для production среды рассмотрите создание отдельного клиента (non-admin) с минимально необходимыми правами вместо admin.
- SELinux обычно должен быть включён в production; в тестовой среде мы временно отключили его для простоты настройки.
Типичные ошибки и способы устранения
- “Permission denied” при монтировании
- Проверьте права на secretfile (600).
- Убедитесь, что имя клиента (name=) и ключ совпадают.
- “No route to host” или таймауты к монитору
- Проверьте /etc/hosts, маршрутизацию и доступность порта 6789.
- ping mon1, telnet mon1 6789 или nc -zv mon1 6789.
- CephFS не появляется в df
- Убедитесь, что MDS запущен: ceph mds stat.
- Проверьте логи на client2: dmesg или /var/log/messages для kernel-mount, и вывод ceph-fuse для FUSE.
Тестовый runbook при проблемах (шаги для быстрого восстановления)
- Проверка сети:
ping -c 3 mon1
telnet mon1 6789- Проверка статуса кластера из любого узла с доступом к ceph CLI:
ceph -s
ceph health detail- Проверка MDS:
ceph mds stat
ceph fs ls- Проверка прав доступа keyfile и его содержимого:
ls -l /home/cephuser/ceph.key
sudo cat /home/cephuser/ceph.key- Перезапуск монтирования: отмонтировать и смонтировать повторно. Просмотреть логи.
Контрольные списки по ролям
Администратор кластера (ceph-admin):
- Убедиться в наличии работающих мониторов и MDS.
- Создать необходимые пулы и файловую систему.
- Выдать/поделиться конфигурацией и keyring для клиентов.
Системный администратор клиента (client2):
- Создать пользователя cephuser и задать sudo.
- Установить ceph-common и ceph-fuse.
- Скопировать ceph.conf и keyring, настроить права.
- Протестировать монтирование и настроить fstab при необходимости.
Критерии приёмки
- Клиент успешно монтирует CephFS командой mount или ceph-fuse без ошибок.
- При перезагрузке (если настроено в fstab) файловая система автоматически становится доступной.
- Пользователь может читать и записывать файлы в соответствии с правами.
- На стороне сервера MDS показывает статус active и healthy.
Альтернативные подходы
- Использовать RBD (Ceph Block Device) и форматировать файловую систему на LVM/EXT4/XFS — полезно, если вам нужна блочная семантика.
- Развернуть NFS-Ganesha поверх CephFS для совместимости с клиентами, где невозможно установить Ceph-клиент.
- Kubernetes CSI driver для CephFS — интеграция с контейнерными платформами.
Ментальные модели
- “MDS — как директор файловой системы”: отвечает за namespace и контролирует доступ к файлам, тогда как OSD хранит сами данные.
- “MON — как адресная книга и сторожевой щит”: клиенты сначала общаются с MON, чтобы найти OSD и MDS.
Быстрая шпаргалка команд (cheat sheet)
- Проверка статуса кластера: ceph -s
- Список файловых систем: ceph fs ls
- Статус MDS: ceph mds stat
- Создать пула: ceph osd pool create
- Создать fs: ceph fs new
Диаграмма принятия решения
flowchart TD
A[Нужно монтировать CephFS?] --> B{Есть kernel-модуль?}
B -- Да --> C[Использовать kernel driver 'mount -t ceph']
B -- Нет --> D[Использовать ceph-fuse]
C --> E{Нужно автозапуск при reboot?}
D --> E
E -- Да --> F[Добавить запись в /etc/fstab]
E -- Нет --> G[Ручное монтирование по необходимости]Заключение
В этом руководстве показаны исчерпывающие шаги для подключения CephFS на клиенте CentOS 7: от подготовки пользователя и синхронизации времени до создания MDS, пулов и трёх способов монтирования. Выбор метода зависит от требований к производительности, доступности kernel-модуля и потребности в автоматическом монтировании.
Полезные ссылки
- http://docs.ceph.com/docs/master/cephfs/
- https://access.redhat.com/documentation/en/red-hat-ceph-storage/
Краткое резюме далее в разделе “Основные выводы”.

Похожие материалы
Установка программ в Windows 11 без прав администратора
Visual Voicemail в Windows 10 Mobile — как настроить
Сменить устройство вывода звука в Windows 11
Как массово переслать письма в Outlook
Auto-advance в Gmail: включение и настройка