Browse Source

Add new article about ceph and existing disk usage

pull/4/head
LecygneNoir 5 years ago
parent
commit
d7a8c20c85
1 changed files with 111 additions and 0 deletions
  1. +111
    -0
      content/2019/ceph-utiliser-disque-restant.md

+ 111
- 0
content/2019/ceph-utiliser-disque-restant.md View File

@ -0,0 +1,111 @@
---
Title: Ceph - utiliser le reste d'un disque partitionné
date: 2019-02-26 06:53
Authors: Victor Héry
Slug: ceph-utiliser-disque-restant
Category: Système
Tags: ceph, astuces
keywords: ceph, astuces
Status: published
---
[TOC]
# Introduction et disclaimer
Parfois sur un serveur, on se retrouve avec un disque de grande capacité qui ne vous sert à rien, parce que par exemple vous avez juste besoin de quelques centaines de Go pour installer un système.
Si vous utilisez en outre un système de stockage distribué (ici [ceph](https://ceph.com)), cela rend cette perte encore plus dommage, puisque la tentation est grande d'utiliser le reste du disque pour l'intégrer au cluster.
Avec ceph, c'est possible !
En effet comme il se sert de partitions toute simple et non d'un disque entier, il est possible de le nourrir avec ce qu'il reste d'espace sur votre disque.
Il y a bien sûr des contraintes que l'on va détailler dans les disclaimers suivants.
## Disclaimer 1
Mieux vaut que la taille restante de votre disque soit proche de celle des autres disques du cluster.
**Ajouter 100Go de disque à un cluster utilisant des disques de 3To n'a au mieux aucun intérêt et au pire peut être risqué !**
## Disclaimer 2
**GROS DISCLAIMER**
Utiliser le disque où il y a votre système installé va partager les IO du disque entre ceph et l'OS !
Ceph peut être un très gros consommateur de lecture/écriture, il est donc **important** de ne faire ça que si votre système a besoin de peu d'io.
- Ne le faites pas si vous utilisez un disque lent (5400trs/min ? c'est mort. 7200 trs/min ? Ça peut passer si votre OS n'écrit rien)
- Ne le faites pas si votre OS utilise de nombreux IO (service de BDD installé dessus, nombreux logs, ...)
- Surveillez vos IO et la charge dans le temps après la configuration
- Ne le faites pas si vous ne savez pas ce que vous faites :kissing:hearth:
# Manipulations
L'idée est simple. On va formater le disque à la main et s'en servir pour l'intégrer dans ceph.
Comme toute idée simple, le potentiel de ratage est important, je vais donc volontairement détailler les choses auxquelles faire attention.
Ouais je sais je suis un peu chiant, que voulez vous, c'est l'apprentissage de la vie en production qui parle :-D
## Hypothèses
**À lire**
Je pars ici du principe que les binaires ceph sont déjà installés sur votre système (si par exemple vous utilisez un autre disque du serveur pour ceph)
Si ce n'est pas le cas, commencez par attaquer la [documentation](http://docs.ceph.com/docs/master/install/) :-)
Je vais également prendre un **exemple** de partitionnement existant pour la numérotation des partitions.
**Adaptez** cet exemple avec votre situation pour éviter d'écraser des partitions existantes !
## Notre exemple
Dans cet exemple on va se baser sur un disque de 3To qui possède déjà 4 partitions :
```bash
# fdisk -l /dev/sda
Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Device Start End Sectors Size Type
/dev/sda1 4096 67112959 67108864 32G Linux swap
/dev/sda2 67112960 68161535 1048576 512M Linux filesystem
/dev/sda3 68161536 277876735 209715200 100G Linux filesystem
/dev/sda4 2048 4095 2048 1M BIOS boot
```
Comme vous le voyez on utilise déjà environ 132Go, on va donc s'occuper de récupérer les 2,8To restant.
**Là encore, pensez à adapter les numéros de partitions dans la suite !**
On va également utiliser **sgdisk** car c'est l'outil de configuration qu'utilise ceph lui-même quand il doit préparer un disque complet, et il fait le taf exactement comme les binaires ceph s'attendent à le voir fait.
## Partitionnement
Ceph a besoin d'une partition de type `Ceph OSD` d'une centaine de Mo pour ses méta données, qui **doit** porter le nom `ceph data`.
On va donc lui créer une 5eme partition nommée `ceph data` de type `4fbd7e29-9d25-41b8-afd0-062c0ceff05d`. (cf [wikipedia](https://en.wikipedia.org/wiki/GUID_Partition_Table))
**Ici modifiez les `5:` pour coller avec votre propre numéro de partition.** Il y a quatre `5:` à changer.
```bash
sgdisk --new=5:0:+100M --change-name="5:ceph data" --partition-guid=5:$(uuidgen -r) --typecode=5:4fbd7e29-9d25-41b8-afd0-062c0ceff05d -- /dev/sda
partprobe # partprobe nous permet ici de relire à chaud les partitions d'un disque en cours d'utilisation.
```
On va ensuite créer une 6ème partition utilisant tout le reste du disque.
Celle-ci doit s'appeler `ceph block` et être de type `CAFECAFE-9B03-4F30-B4C6-B4B80CEFF106` (oui oui cafe cafe, là encore confer [wikipedia](https://en.wikipedia.org/wiki/GUID_Partition_Table))
**Là encore** modifiez les numéros `6:` pour coller à votre partition. Il y a trois `6:` à changer cette fois.
```bash
sgdisk --largest-new=6 --change-name="6:ceph block" --typecode=6:CAFECAFE-9B03-4F30-B4C6-B4B80CEFF106 -- /dev/sda
partprobe
```
## Activation
Une fois le partitionnement terminé, il ne nous reste plus qu'à dire à ceph d'utiliser le disque :
**Comme toujours**, modifiez vos partitions pour coller à votre cas ! Ici `sda5` représente la partition ceph-osd, `sda6` le reste du disque.
```bash
ceph-disk prepare --bluestore /dev/sda5 /dev/sda5 /dev/sda6
ceph-disk activate /dev/sda5
```
Et voila, une fois le `ceph-disk activate` terminé, votre nouvel osd est prêt et intégré au cluster ceph !
Enjoy :-)

Loading…
Cancel
Save