Cephfs

From Hobbynet Admin Wiki
Jump to navigation Jump to search

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