Ceph-Sharing-Disk » Historique » Version 18
« Précédent -
Version 18/48
(diff) -
Suivant » -
Version actuelle
Laurent GUERBY, 11/11/2014 14:36
- Contenu
- Ceph-Sharing-Disk
Ceph-Sharing-Disk¶
Objectif¶
Un-e adherent-e tetaneutral.net souhaite heberger une machine efficace energetiquement et prenant peu de place comme un NUC/Brix ce qui arrange tetaneutral.net mais limite la partie stockage disque. L'idée est que l'adherent-e achete en plus des disques 3.5 classiques, nous les mettons dans le cluster Ceph/openstack et nous exportons un pool de stockage Ceph a la machine.
Cluster¶
Sur le cluster ceph:
Création de l'utilisateur et du pool ceph pour cet utilisateur
# # ./ceph-create-ext-pool.sh <username> <size en giga> # ./ceph-create-ext-pool.sh sileht 100 creating ceph.client.sileht.keyring imported keyring pool 'sileht-pool' created set pool 70 size to 2 set pool 70 min_size to 2 set-quota max_bytes = 107374182400 for pool sileht-pool # cat ceph.client.sileht.keyring ... # ceph auth get client.sileht ... (identical to file)
Le fichier important pour le client est ./ceph.client.sileht.keyring
Client¶
Installation de ceph¶
Debian jessie¶
apt-get install ceph
Debian wheezy/squeeze, Ubuntu precise/quantal/raring/saucy/trusty¶
apt-get install lsb-release wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add - echo deb http://ceph.com/debian-firefly/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list apt-get update apt-get install ceph
Un kernel plus recent que 3.9 (ou 3.16) est aussi necessaire, pour wheezy :
echo "deb http://http.debian.net/debian wheezy-backports main" > /etc/apt/sources.list.d/wheezy-backports.list apt-get update apt-get install -t wheezy-backports linux-image-amd64
Configuration de ceph¶
Sur le client rbd :
La machine machine doit être configuré avec une ip sur le vlan 3199, si eth0 n'est pas dans un bridge :
ip link add link eth0 name eth0.3199 type vlan id 3199 ip link set dev eth0.3199 txqueuelen 100 ip link set eth0.3199 up ip addr add 192.168.99.XXX/24 dev eth0.3199 # XXX donne par les admin ttnn
Installation de ceph :
apt-get install ceph
Le membre récupére son keyring (ceph.client.sileht.keyring ici) et le copie dans /etc/ceph/
Il peut ensuite créer le fichier /etc/ceph/ceph.conf
[global] fsid = 1fe74663-8dfa-486c-bb80-3bd94c90c967 auth_supported = cephx auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx mon_host = 192.168.99.251,192.168.99.252,192.168.99.253 [client.sileht] keyring = /etc/ceph/ceph.client.sileht.keyring
On vérifie que cela marche :
$ rbd --id sileht -p sileht-pool ls $ echo $? 0
Si il n'y a pas d'erreur c'est bon, maintenant on créée un volume rbd :
$ rbd --id sileht --pool sileht-pool create --size 100000 backup $ rbd --id sileht -p sileht-pool ls backup
On configure le mapping automatique du volume rbd :
$ echo sileht-pool/backup id=sileht >> /etc/ceph/rbdmap $ service rbdmap restart RBD Mapping: 'sileht-pool/backup'...done.
le disque est prêt, on peut soit le formater directement :
$ mkfs.ext4 /dev/rbd/sileht-pool/backup $ mount /dev/rbd/sileht-pool/backup /backup
soit le chiffrer:
$ sudo cryptsetup luksFormat /dev/rbd/sileht-pool/backup WARNING! ======== This will overwrite data on /dev/rbd/sileht-pool/backup irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase: Verify passphrase:
$ cryptsetup luksOpen /dev/rbd/sileht-pool/backup backup1 $ mkfs.ext4 /dev/mapper/backup1 $ mount /dev/mapper/backup1 /backup
Attention : ne pas remplir le device de données aleatoires comme suggéré dans les tutoriaux luks cela ferait perdre le provisionning progressif de ceph (utilisation effective uniquement sur les blocks non zero)
Ajout de la configuration persistante via un keyfile (attention : c'est une clé privée qui permet d'ouvrir le volume cryptfs sans passphrase) :
$ dd if=/dev/urandom of=/etc/luks.key bs=1024 count=4 $ chmod 0400 /etc/luks.key $ cryptsetup luksAddKey /dev/rbd/sileht-pool/backup /etc/luks.key $ sudo blkid | grep -e rbd0 -e backup1 /dev/rbd0: UUID="1a268f70-6f6d-41f7-9216-43ba0bd0750b" TYPE="crypto_LUKS" /dev/mapper/backup1: UUID="51db13d9-4ac4-4e47-bb7a-b111994cdefd" TYPE="ext4" $ echo "backup1 UUID=1a268f70-6f6d-41f7-9216-43ba0bd0750b /etc/luks.key luks" >> /etc/crypttab $ echo "UUID=51db13d9-4ac4-4e47-bb7a-b111994cdefd /backup ext4 defaults,noatime,_netdev 0 2" >> /etc/fstab
Effacement d'une image :
# Editer /etc/ceph/rbdmap et enlever la ligne "backup" # service rbdmap restart # rbd --id sileht --pool -pool rm backup