Гид по технологиям

Монтирование CephFS на CentOS 7 — клиент (часть 3)

6 min read Ceph Обновлено 22 Nov 2025
Монтирование CephFS на CentOS 7 — клиент
Монтирование CephFS на CentOS 7 — клиент

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

Добавление клиента в ceph-admin

Шаг 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 запущен и активен.

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

Монтирование CephFS через kernel driver

Шаг 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

Отмонтирование CephFS через fuse

Шаг 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; в тестовой среде мы временно отключили его для простоты настройки.

Типичные ошибки и способы устранения

  1. “Permission denied” при монтировании
    • Проверьте права на secretfile (600).
    • Убедитесь, что имя клиента (name=) и ключ совпадают.
  2. “No route to host” или таймауты к монитору
    • Проверьте /etc/hosts, маршрутизацию и доступность порта 6789.
    • ping mon1, telnet mon1 6789 или nc -zv mon1 6789.
  3. CephFS не появляется в df
    • Убедитесь, что MDS запущен: ceph mds stat.
    • Проверьте логи на client2: dmesg или /var/log/messages для kernel-mount, и вывод ceph-fuse для FUSE.

Тестовый runbook при проблемах (шаги для быстрого восстановления)

  1. Проверка сети:
ping -c 3 mon1
telnet mon1 6789
  1. Проверка статуса кластера из любого узла с доступом к ceph CLI:
ceph -s
ceph health detail
  1. Проверка MDS:
ceph mds stat
ceph fs ls
  1. Проверка прав доступа keyfile и его содержимого:
ls -l /home/cephuser/ceph.key
sudo cat /home/cephuser/ceph.key
  1. Перезапуск монтирования: отмонтировать и смонтировать повторно. Просмотреть логи.

Контрольные списки по ролям

Администратор кластера (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-модуля и потребности в автоматическом монтировании.

Полезные ссылки

Краткое резюме далее в разделе “Основные выводы”.

Схема монтирования CephFS и роли компонентов

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Установка программ в Windows 11 без прав администратора
Windows

Установка программ в Windows 11 без прав администратора

Visual Voicemail в Windows 10 Mobile — как настроить
Windows 10

Visual Voicemail в Windows 10 Mobile — как настроить

Сменить устройство вывода звука в Windows 11
Windows

Сменить устройство вывода звука в Windows 11

Как массово переслать письма в Outlook
Электронная почта

Как массово переслать письма в Outlook

Auto-advance в Gmail: включение и настройка
Gmail

Auto-advance в Gmail: включение и настройка

Освободить место на iPhone и iPad для обновления iOS
iOS

Освободить место на iPhone и iPad для обновления iOS