Добавление OSD в Ceph является обычной операцией. При этом добавление/замена OSD не сказывается на работоспособности кластера.
Допустим, диск уже находится в ячейке сервера и ждёт дальнейших указаний. В первую очередь необходимо создать cciss-устройство. В серверах HP это делает утилита hpssacli.
Необходимые команды:
hpssacli controller all show config detail
# показать unassigned-устройство, т.е. новый диск
hpssacli ctrl slot=0 create type=ld drives=1I:1:1 raid=0
# создание cciss-устройства, где drives - массив значений Port:Box:Bay
Далее можно опять вызвать детализированный просмотр hpssacli и увидеть что диск перешёл в состояние logical drive.
Так же можно посмотреть на вывод команды списка OSD текущей ноды:
ceph-disk list
Если smart проверка диска не доступна, необходимо перезагрузить сервис smartd:
service smartd restart
Если, для добавления cciss-устройства использовать утилиту от Proxmox, то необходимо доавить такой fix в файл Ceph.pl:208 (строка может быть немного смещена) по адресу /usr/share/perl5/PVE/API2:
208 $devname =~ s|/dev/||;
209 + $devname =~ s|cciss/|cciss!|;
Далее, в зависимости от способа хранения журнала создаётся OSD:
1. Если журнал хранится на отдельном SSD.
# убедиться, что на SSD есть свободное место
fdisk -l /dev/cciss/c0d0
# где c0d0 - SSD с журналом
# проверить, есть ли на SSD неиспользуемые разделы
ceph-disk list
# если вывод данной команды не показывает, кому принадлежит какой журнал,
# то это можно увидеть в ссылке journal по адресу /var/lib/ceph/osd/ceph
# создаём OSD
pveceph createosd /dev/cciss/c0d1 -journal_dev /dev/cciss/c0d0
# где c0d1 - будущий OSD, а c0d0 - SSD c журналами
# если был в наличие пустой журнал от старого диска, можно указать его, т.е. c0d0p1
2. Если журнал хранится на самом диске.
pveceph createosd /dev/cciss/c0d1
Теперь Ceph запустит репликацию и через несколько часов новый диск наполнится данными.