Работа пула

Ответить
admin
Администратор
Сообщения: 198
Зарегистрирован: 05 янв 2011, 04:19

Работа пула

Сообщение admin »

Выполнение операций с пулом Ceph одна из повседневных работ для администратора Ceph. Ceph предоставляет богатый инструментарий cli для создания пулов и управления ими. В следующем разделе мы узнаем о работе с пулами Ceph.
Создание пула и просмотр списка пулов

Для создания пула требуется имя пула, число PG и PGP, а также тип пула, который может быть либо реплицируемым, либо удаляемым. Значение по умолчанию - реплицируемый. Давайте начнем создание пула:

Создадим пул web-services со значением 128 для чисел PG и PGP. Приводимая команда создаст пул с репликациями, поскольку это параметр по умолчанию.

Код: Выделить всё

 # ceph osd pool create web-services 128 128


Перечень пулов может быть получен двумя способами. Однако вывод результатов третьей команды снабжает нас бОльшим объемом информации, такой как идентификатор пула, размер репликаций, набор правил CRUSH, а также числами PG и PGP:

Код: Выделить всё

 # ceph osd lspools
    # rados lspools
    # ceph osd dump | grep -i pool


Код: Выделить всё

[root@ceph-node1 /]# ceph osd dump | grep -i pool
    pool 3 'rbd' rep size 2 mir_size 1 crush_ruleset 0 object_hash rjenkins pg_nun 256 pgp_num 256 last_change 428 owner 0
    pool 5 'metadata' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_nun 256 pgp_num 256 last_change 476 owner 0
    pool 6 'data' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 470 owner 0
    pool 8 'web-services' rep size 2 min_size 1 crush_ruleset 0 object_hasb rjenkins pg_num 128 pgp_num 128 last_change 503 owner 0
    [root@ceph-node1 /]#


Значение по умолчанию для размера репликаций при создании пула Ceph для Ceph Emperor или более {ранних} редакций является 2; мы можем изменить значение размера репликаций с использованием следующей команды:

Код: Выделить всё

 # ceph osd pool set web-services size 3
    # ceph osd dump | grep -i pool


Код: Выделить всё

[root@ceph-node1 /]# ceph osd pool set web-services size 3
    set pool 8 size to 3
    [root@ceph-node1 /]#
    [root@ceph-node1 /]# ceph osd dump | grep -i pool
    pool 3 'rbd' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 478 owner 0
    pool S 'metadata' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 476 owner 0
    pool 6 'data' rep size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 470 owner 0
    pool 8 'web-services' rep size 3 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 128 pgp_num 128 last_change 505 owner 0

[Замечание] Замечание

Для Ceph Emperor и более ранних редакций значение размера репликаций для пула по умолчанию было 2; это значение по умолчанию было изменено на 3 начиная с Ceph Firefly.

Переименуйте пул следующим образом:

Код: Выделить всё

# ceph osd pool rename web-services frontend-services
    # ceph osd lspools


Пулы Ceph поддерживают моментальные снимки; мы можем восстановить объекты из моментального снимка в случае отказа. В следующем примере мы создадим в пуле объект и затем сделаем моментальный снимок пула. После этого мы умышленно удалим объект из пула и попытаемся восстановить объект из моментального снимка:

Код: Выделить всё

# rados –p frontend-services put object1 /etc/hosts
    # rados –p frontend-services ls
    # rados mksnap snapshot01 -p frontend-services
    # rados lssnap -p frontend-services
    # rados -p frontend-services rm object1
    # rados -p frontend-services listsnaps object1
    # rados rollback -p frontend-services object1 snapshot01
    # rados -p frontend-services ls

    [root@ceph-node1 /]#
    [root@ceph-node1 /]#
    [root@ceph-node1 /]# rados -p frontend-services put object1 /etc/hosts
    [root@ceph-node1 /]# rados -p frontend-services ls
    object1
    [root@ceph-node1 /]# rados mksnap snapshot01 -p frontend-services
    created pool frontend-services snap snapshot01
    [root@ceph-node1 /]# rados lssnap -p frontend-services
    5   snapshot01   2014.05.12 13:20:58
    1 snaps
    [root@ceph-node1 /]# rados -p frontend-services rm object1
    [root@ceph-node1 /]#
    [root@ceph-node1 /]# rados -p frontend-services listsnaps object1
    object1:
    cloneid snaps size   overlap
    5   5     237   []

    [root@ceph-node1 /]# rados rollback -p frontend-services object1 snapshot01
    rolled back pool frontend-services to snapshot snapshot01
    [root@ceph-node1 /]# rados -p frontend-services ls
    object1
    [root@ceph-node1 /]#
    [root@ceph-node1 /]# _

Удаление пула удаляет также и все его моментальные снимки. После удаления пула вам следует удалить наборы правил CRUSH, если вы их создавали вручную. Если вы создавали пользователей с полномочиями исключительно для пула, который больше не существует, вам следует также проанализировать удаление таких пользователей:

Код: Выделить всё

 # ceph osd pool delete frontend-services frontend-services --yes-i-really-really-mean-it
Ответить