Cephi paigaldus käsitsi ilma deploy-utiliidita

Allikas: Kuutõrvaja

Cephi paigaldus käsitsi ilma deploy utiliidita

NB! katsed tunduvat näitavat seda, et btrfsi kasutamine OSD'de all võtab jõudlust maha kuna btrfs kipub kirjutama pidevalt suurte blokkide kaupa. Sobivam oleks kasutada XFS'i

Mõningail erandjuhtudel võib olla soov mitte kasutada ceph-deploy mehanismi, näiteks on vajadus skriptida kogu cephi clustri ehitamiseks oma töövahend. Selleks siis juhend kuidas hakkama saada kui deployd pole.

Võtmete loomine

meil vaja kahte võtit. Esimene võti mille tekitame monitoridele

# ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'

Teiseks admin.keyring

# ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'

Paneme mon.keyringi ka admini võtme

# ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

kopeerime mõlemad võtmed kõigile hostidele

# scp ceph.mon.keyring ceph.client.admin.keyring mon1:/etc/ceph
...

Monitori loomine

Fsid genereerimine uuidgen abil

# uuidgen
bcdf56d2-40a8-48b3-ac94-3c377557ee89

OSD ja MDS serverid kasutavad ceph.conf faili, et saada teada mis on MON serverid. Kuid mon serverid ise vajavad omavahelise quorumi ja selle reeglite süsteemi praxis suhtluse jaoks binaarfaili monmap.

# monmaptool --create --add mon.0 192.168.2.1 --add mon.1 192.168.2.2 --add mon.2 192.168.2.3 --fsid 1798897a-f0c9-422d-86b3-d4933a12c7ac initial-monmap

ja seejärel monmap kõigisse monitoridesse

# scp initial-monmap mon1:/etc/ceph
# scp initial-monmap mon2:/etc/ceph
# scp initial-monmap mon3:/etc/ceph

Initsialiseerime esimese monitori

# ceph-mon --mkfs -i 0 --monmap initial-monmap --keyring ceph.mon.keyring

ja samamoodi ka kõik ülejäänud monitorid

Osd loomine

Ketta ettevalmistamine (kuna ketas ilmselt suurem kui kaks tera kasutame GPT partitsioonitabelit)

# parted --script /dev/sda mklabel gpt
# parted --script /dev/sda mkpart primary btrfs 0% 100%

Kettale GPT patitsioonitabel ja sinna btrfs failisüsteem

# mkfs.btrfs -L <label> /dev/sda1

näiteks

# mkfs.btrfs -f -L OSD3 /dev/sda1

Kuna btrfsiga on teatud bugid veel on ilmselt kasulikum kasutada xfsi, selleks

# mkfs.xfs -L OSD3 /dev/sda1

Kettal olevaid btrfs labeleid saab vaadata käsuga

# btrfs filesystem show
Label: 'OSD3'  uuid: 02e79f37-14f6-4a69-adee-764d6641dd53
	Total devices 1 FS bytes used 141.26GiB
	devid    1 size 3.64TiB used 144.04GiB path /dev/sdb1

Label: 'OSD4'  uuid: 0a9caf15-6e16-4542-bb6c-092c21bb1c8c
	Total devices 1 FS bytes used 105.88GiB
	devid    1 size 3.64TiB used 108.04GiB path /dev/sdc1

Label: 'OSD5'  uuid: 2f065f62-ae16-4343-b9f9-01257d2c67cb
	Total devices 1 FS bytes used 118.84GiB
	devid    1 size 3.64TiB used 121.04GiB path /dev/sdd1

Tekitame osdle unikaalse uuidi

# uuidgen
fb84a114-e961-4a8d-98a3-0b263c003129

Registreerime osd koos uuidiga monitorides

# ceph osd create fb84a114-e961-4a8d-98a3-0b263c003129
0

Vastuseks öeldud null tähendab, et registreeriti monitoridesse osd.0 nimeline kirje

Edasi OSD startimine

# ceph-osd -i 0 --mkfs --mkkey --osd-uuid fb84a114-e961-4a8d-98a3-0b263c003129
2014-11-20 14:13:24.790861 7feef17a9780 -1 journal FileJournal::_open: disabling aio for non-block journal.  Use journal_force_aio to force use of aio anyway
2014-11-20 14:13:25.338929 7feef17a9780 -1 journal FileJournal::_open: disabling aio for non-block journal.  Use journal_force_aio to force use of aio anyway
2014-11-20 14:13:25.350759 7feef17a9780 -1 filestore(/var/lib/ceph/osd/ceph-0) could not find 23c2fcde/osd_superblock/0//-1 in index: (2) No such file or directory
2014-11-20 14:13:25.648467 7feef17a9780 -1 created object store /var/lib/ceph/osd/ceph-0 journal /var/lib/ceph/osd/ceph-0/journal for osd.0 fsid e86f3136-90b0-469f-91b5-574e868fb32e
2014-11-20 14:13:25.648527 7feef17a9780 -1 auth: error reading file: /var/lib/ceph/osd/ceph-0/keyring: can't open /var/lib/ceph/osd/ceph-0/keyring: (2) No such file or directory
2014-11-20 14:13:25.648605 7feef17a9780 -1 created new key in keyring /var/lib/ceph/osd/ceph-0/keyring

Nagu viimaselt näha realt loodi ka cephi masinale unikaalne võti

# cat /var/lib/ceph/osd/ceph-0/keyring
[osd.0]
	key = AQDsds1U3MSnahAAf4NslrVyGqMGeDFcdOpVRg==

Sama võtmefaili kasutame selleks, et lisada loodud osd info monitoride praxise andmebaasi

# ceph auth add osd.0 osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/ceph-0/keyring
added key for osd.0

Nüüd lisame enda host serveri crush tabelisse

# ceph osd crush add-bucket serverinimi host
added bucket data1 type host to crush map

NB! server tuleb lisada crush tabelis root harusse, muidu pg'sid ei tekitata vaid need jäävad staatusesse "creating"

# ceph osd crush move serverinimi root=default

Ja seome crush tabelis osd0 tema hostiga

# ceph osd crush add osd.0 1.0 host=data1
add item id 0 name 'osd.0' weight 1 at location {host=data1} to crush map