Работа пула
Добавлено: 29 окт 2015, 14:10
Выполнение операций с пулом Ceph одна из повседневных работ для администратора Ceph. Ceph предоставляет богатый инструментарий cli для создания пулов и управления ими. В следующем разделе мы узнаем о работе с пулами Ceph.
Создание пула и просмотр списка пулов
Для создания пула требуется имя пула, число PG и PGP, а также тип пула, который может быть либо реплицируемым, либо удаляемым. Значение по умолчанию - реплицируемый. Давайте начнем создание пула:
Создадим пул web-services со значением 128 для чисел PG и PGP. Приводимая команда создаст пул с репликациями, поскольку это параметр по умолчанию.
Перечень пулов может быть получен двумя способами. Однако вывод результатов третьей команды снабжает нас бОльшим объемом информации, такой как идентификатор пула, размер репликаций, набор правил CRUSH, а также числами PG и PGP:
Значение по умолчанию для размера репликаций при создании пула Ceph для Ceph Emperor или более {ранних} редакций является 2; мы можем изменить значение размера репликаций с использованием следующей команды:
[Замечание] Замечание
Для Ceph Emperor и более ранних редакций значение размера репликаций для пула по умолчанию было 2; это значение по умолчанию было изменено на 3 начиная с Ceph Firefly.
Переименуйте пул следующим образом:
Пулы Ceph поддерживают моментальные снимки; мы можем восстановить объекты из моментального снимка в случае отказа. В следующем примере мы создадим в пуле объект и затем сделаем моментальный снимок пула. После этого мы умышленно удалим объект из пула и попытаемся восстановить объект из моментального снимка:
Удаление пула удаляет также и все его моментальные снимки. После удаления пула вам следует удалить наборы правил CRUSH, если вы их создавали вручную. Если вы создавали пользователей с полномочиями исключительно для пула, который больше не существует, вам следует также проанализировать удаление таких пользователей:
Создание пула и просмотр списка пулов
Для создания пула требуется имя пула, число 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