Создание пула и просмотр списка пулов
Для создания пула требуется имя пула, число 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