Cephfs
doel
De shared storage is uitbesteed aan Bit, hier wat uitleg er voor
installatie bij Hobbynet
Ken een IP adres toe uit de reeks 2001:7b8:89:0::/64
Standaard pakken wij het IPv4 adres van de interne interface en dat plakken we in het IPv6 adres, dus 172.31.1.19 wordt 2001:7b8:89:0:172:31:1:19/64.
En er moet een route worden toegevoegd voor 2001:7b8:80::/48 naar 2001:7b8:89::1
Je interface ziet er dan zo uit:
ens224: dhcp6: no accept-ra: no addresses: - 2001:7b8:89:0:172:31:1:19/64 routes: - to: 2001:7b8:80::/48 via: 2001:7b8:89::1 critical: true
Installeer eerst de Hobbunet cephfs repo en daarna het pakket 'hobby-cephfs'
apt install hobby-cephfs-repo apt install hobby-cephfs
fstab
read write
Een read/write entry ziet er zo uit :
[2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/site/etc/ssl /disk/site/etc/ssl ceph name=HCCHC-170920-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170920-cephfs.key,noatime,_netdev 0 2
1 regel
read only
Een readonly entry ziet er zo uit :
[2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/site/etc/ssl/wildcard.hcc.nl /disk/site/etc/ssl/wildcard.hcc.nl ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2
standaard mounts in fstab
Deze mounts worden standaard in fstab geplaatst (terwille van de leesbaarheid zijn de regels afgebroken met '--' op het eind):
#cephfs #Hobbynet shared Directory's [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/bin -- /usr/local/hobbynet/bin ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/etc -- /usr/local/hobbynet/etc ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/lib -- /usr/local/hobbynet/lib ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2 [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/home -- /usr/local/hobbynet/home ceph name=HCCHC-170920-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170920-cephfs.key,noatime,_netdev 0 2 #firewall [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5]:/HCCHC/170920/disk/usr/local/hobbynet/firewall/general -- /usr/local/hobbynet/firewall/general ceph name=HCCHC-170989-cephfs,secretfile=/etc/ceph/ceph.client.HCCHC-170989-cephfs.key,noatime,_netdev,ro 0 2
firewalling
In de algemene IPv6 firewall regels staan we al het verkeer toe van en naar 2001:7b8:80::/48, met uitzondering van port 22 (ssh) inkomend.
Voor inkomend staat dit in /usr/local/hobbynet/firewall/general/in_up.ip6:
#drop ssh van cephstorage bit $IP6TABLES -A INPUT -p tcp -s 2001:7b8:80::/48 --dport 22 -j ACCEPT #overig verkeer van cephstorage bit moet mogen $IP6TABLES -A INPUT -s 2001:7b8:80::/48 -j ACCEPT
Voor uitgaand is dat in /usr/local/hobbynet/firewall/general/out_up.ip6
#verkeer naar cephstorage bit moet mogen $IP6TABLES -A OUTPUT -d 2001:7b8:80::/48 -j ACCEPT
keys
RW user:
[client.HCCHC-170920-cephfs] key = AQBOo5Zf3rJQCxAA/yqzR0OX9LajCv+waicd2w== caps mds = "allow rw path=/HCCHC/170920" caps mon = "allow r" caps osd = "allow rw pool=BITED-153874-cephfs_data namespace=HCCHC-01"
RO user:
[client.HCCHC-170989-cephfs] key = AQBRo5Zfx9FzBRAAMuNwqySs17SJJJ9bPHnuew== caps mds = "allow r path=/HCCHC/170920" caps mon = "allow r" caps osd = "allow r pool=BITED-153874-cephfs_data namespace=HCCHC-01"
uitleg bit
Uit Bit ticket 170920 https://status.bit.nl/tickets/?id=170920&query=f35a540e5379df8ed2c734707a7984e3
Hieronder de uitleg voor het instellen van de Cephfs. 1) Zorg ervoor dat de server een IP adres krijgt in de netwerk range 2001:7b8:89::/48 2) Zorg ervoor dat er een route is ingesteld naar de Ceph storage omgeving /sbin/ip -6 route add 2001:7b8:80::/48 via 2001:7b8:89::1 3) Installeer de Ceph tooling $ wget -qO- https://download.ceph.com/keys/release.asc | apt-key add - $ echo "deb http://ceph.download.bit.nl/debian-mimic bionic main" \ | sudo tee /etc/apt/sources.list.d/ceph.list $ apt update $ apt install ceph-common 4) Maak een bestand aan in /etc/ceph/ceph.conf met onderstaande informatie: [global] # IPs here instead of hostname so we work independent of DNS mon_host = [2001:7b8:80:1:0:1:1:1],[2001:7b8:80:1:0:1:1:2],[2001:7b8:80:3:0:2c:1:3],[2001:7b8:80:3:0:2c:1:4],[2001:7b8:80:2:0:2a:1:5] 5) Plaats de client key waarmee de authenticatie plaatsvind op de Cephfs. De nodige gegevens hiervan zijn te vinden in de securebox. $ cat /etc/ceph/ceph.client.FOOBA-123456-cephfs.keyring [client.FOOBA-123456-cephfs] key = AQDpqB.... caps mds = "allow rw path=/FOOBA/123456" caps mon = "allow r" caps osd = "allow rw pool=BITED-153874-cephfs_data namespace=FOOBA-01" 6) Plaats de key zelf ook nog los in een file. Dit is dezelfde key als in stap 5 is gebruikt. $ cat /etc/ceph/ceph.client.FOOBA-123456-cephfs.key AQDpqB.... 7) Zet onderstaande regel in fstab mon1.ceph.bit.nl,mon2.ceph.bit.nl,mon3.ceph.bit.nl,mon4.ceph.bit.nl,mon5.ceph.bit.nl:/HCCHC/170920 /mnt/data ceph name=FOOBA-123456-cephfs,secretfile=/etc/ceph/ceph.client.FOOBA-123456-cephfs.key,noatime,_netdev 0 2 Hierna zal het mogelijk moeten zijn om /mnt/data te mounten met Cephfs. Wanneer er alleen RO rechten toegestaan zijn, dan dien je vanaf stap 5 de key te gebruiken voor de RO user.
In orginele bit ticket ontbrak 'apt install ceph-common'. deze toegevoegd
In orginele bit ticket zat typo in mount path /HCCHC/17092 moest /HCCHC/170920 zijn (gecorrigeerd)
Van de aan ons toegekende /48 wordt alleen de 1e /64 gebruikt dus 2001:7b8:89:0::/64
ook het bionic (18.04) repo gebruiken voor focal (20.4) gebruiken zoals in ticket vermeld staat