Cephi paigaldus käsitsi ilma deploy-utiliidita
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