Перейти к основному контенту

Лабораторная работа 3. Ceph FS, Ceph Dashboard

ЗИспользовапускние файловой системы Ceph

Запуск ceph-mds

Чтобы услуга Ceph FS работала для клиентов, необходимо запустить демон сервера метаданных (MDS). Для этого создадим папку для демона, пользователя Ceph и запустим службу ceph-mds.

  1. Запустить демоны MDS на хостах ceph-02, ceph-03:
    sudo mkdir -p /var/lib/ceph/mds/ceph-$HOSTNAME
    sudo ceph-authtool --create-keyring /var/lib/ceph/mds/ceph-$HOSTNAME/keyring \
     --gen-key -n mds.$HOSTNAME
    sudo chown -R ceph. /var/lib/ceph/mds/ceph-$HOSTNAME
    sudo ceph auth add mds.$HOSTNAME osd "allow rwx" mds "allow" mon "allow profile mds" \
     -i /var/lib/ceph/mds/ceph-$HOSTNAME/keyring
    sudo systemctl enable --now ceph-mds@$HOSTNAME
    
    • Либо использовать скрипт:

      Скрипт для запуска на ceph-01
      #!/bin/bash
      
      for NODE in ceph-02 ceph-03
      do
        MDS_PATH=/var/lib/ceph/mds/ceph-$NODE;
        ssh $NODE \
      	   "sudo mkdir -p $MDS_PATH; \
      	   sudo ceph-authtool --create-keyring $MDS_PATH/keyring \
      	    --gen-key -n mds.$NODE; \
      	   sudo chown -R ceph. $MDS_PATH; \
      	   sudo ceph auth add mds.$NODE osd 'allow rwx' mds 'allow' mon 'allow profile mds' \
      	    -i $MDS_PATH/keyring; \
      	   sudo systemctl enable --now ceph-mds@$NODE"
      done
      
Создание файловой системы

На любом узле кластера необходимо выполнить следующие команды:

  1. Чтобы запустить файловую систему ceph, нужно создать два пула: пул для данных и пул для метаданных:

    sudo ceph osd pool create cephfs_data 64
    sudo ceph osd pool create cephfs_metadata 64
    
  2. Создадим файловую систему:

    sudo ceph fs new cephfs cephfs_metadata cephfs_data
    

    С помощью данных команд можно просмотреть статус файловой системы:

    sudo ceph fs ls
    sudo ceph mds stat
    sudo ceph fs status cephfs
    
  3. Создадим пользователя для подключения к файловой системе и запишем ключ пользователя в отдельный файл:

    sudo ceph fs authorize cephfs client.fsclient / rw -o /etc/ceph/ceph.client.fsclient.keyring
    sudo ceph auth get-or-create-key client.fsclient -o /etc/ceph/fsclient.secret
    
  4. Необходимо скопировать файлы /etc/ceph/fsclient.secret и /etc/ceph/ceph.client.fsclient.keyring на остальные узлы.

Проверка
  1. На каждом узле кластера необходимо выполнить следующие команды:

    sudo mkdir /mnt/cephfs
    sudo mount -t ceph fsclient@.cephfs=/ /mnt/cephfs -o secretfile=/etc/ceph/fsclient.secret
    
  2. Проверить статус монтирования:

    df -hT | grep ceph
    
  3. На ceph-01 создать файл с произвольным текстом и поместить его в каталог /mnt/cephfs:

    echo "my text for ceph fs" | tee /mnt/cephfs/test.txt
    
  4. Проверить содержание файла на других узлах:

    ls /mnt/cephfs/
    cat /mnt/cephfs/test.txt
    
Динамическая миграция ВМ с использованием Ceph FS
  1. Поместим образ cirros в созданную файловую систему:

    sudo cp /tmp/cirros.img /mnt/cephfs/cirros.img
    
  2. Запустим ВМ:

    sudo virt-install --name cirros --graphics none \
     --vcpus 1 --memory 128 --disk "vol=libvirt-pool/cirros" \
     --import --autostart
    
  3. Проверим работоспособность запущенной ВМ:

    sudo virsh list --all
    sudo virsh console cirros
    
  4. Дальнейшие действия аналогичны пунктам "Создание ресурса", "Миграция ресурса" лабораторной работы 2.

Запуск Ceph Dashboard

  1. В работающем кластере Ceph панель мониторинга Ceph активируется с помощью:

    sudo ceph mgr module enable dashboard
    
  2. Сгенерируем и установим самоподписанный SSL сертификат:

    sudo ceph dashboard create-self-signed-cert
    
  3. Чтобы иметь возможность войти в систему, вам необходимо создать учетную запись пользователя и связать ее хотя бы с одной ролью. Ceph предоставляет набор предопределенных системных ролей, которые вы можете использовать. Чтобы создать пользователя admin с паролем password и ролью администратора, можно воспользоваться следующими командами:

    echo "password" >> mypass
    sudo ceph dashboard ac-user-create admin -i mypass --force-password administrator
    rm mypass
    
  4. В Openstack в группе безопасности добавить правило для порта 8443/tcp.

  5. С помощью команды sudo ceph mgr services на одном из узлов кластера можно получить ссылки доступных сервисов. Пример вывода:

    {
        "dashboard": "https://172.17.5.232:8443/"
    }