HULK/THOR                  Mehdi Sebbar - Juin 2012                     mehdi@minet.net                          MiNETlund...
RAPPELS SUR L’INFRASTRUCTURE MINET                             MAJ 26/05: Opportunity sur le prodlundi 4 juin 12
POURQUOI UN NAS ?                    On veut stocker les disques des VMs                  On veut stocker des données impo...
POURQUOI UN NAS ?                    On veut stocker les disques des VMs                  On veut stocker des données impo...
Les acteurslundi 4 juin 12
HULKlundi 4 juin 12
HULKlundi 4 juin 12
HULK ?                             Processeur : Athlon II X6 1055T                                     Mémoire : 8Gb      ...
Unix crée par Sun microsystems                       Réputé stable et fiable                  Compatible avec les binaires ...
FEATURES            Gestion des disques                   ~LVM                Filesystem            ZFS             RAID ~...
Leader en Open Storage                         «As a general term, open storage refers to storage systems built with      ...
lundi 4 juin 12
lundi 4 juin 12
FEATURES                  Transactionnel: robuste                    pas besoin de fsck                     Pools (volumes...
FEATURES                  Transactionnel: robuste                    pas besoin de fsck                     Pools (volumes...
POOLS                    FS      FS       FS       ZFS        ZFS         ZFS                  Volume Volume Volume       ...
les disques physiques sont donnés par la                  commande format ou dans /dev/dsk                  Pool basique e...
Mirror (raid1)                  zpool create -f data mirror /A /B                  On supprime un des disques:            ...
RAIDZ ?                  Problème du «RAID 5 write-hole»                        On utilise ça à MiNETlundi 4 juin 12
Exemple:                  zpool create -f data raidz /A /B /C                  df -h                  zpool export data   ...
DEDUPLICATION                  Les données (fichiers, blocs, ou suites d’octets) sont checksummed grâce à une             ...
Exemple:                  zfs set dedup=on data                  cp -r .mozilla/ /data/mo                  cp -r .mozilla/...
ZFS DATASET              On peut en créer autant qu’on veut sur un pool              Pas besoin d’allouer ou de formater  ...
zfs create data/test                  le dataset est monté automatiquement                  zfs list                  zfs ...
SNAPSHOT                  zfs snasphot pool/dataset@nom_du_snapshot                  zfs list -t all                  zfs ...
THORlundi 4 juin 12
THORlundi 4 juin 12
THOR           En cas de panne critique de Hulk, on a plus les disques de VMS                        Comment récupérer les...
THOR           En cas de panne critique de Hulk, on a plus les disques de VMS                        Comment récupérer les...
ZFS SEND / ZFS RECEIVE          On envoie que des snapshots          zfs snapshot data/test@20120530          On envoie le...
Le script de backup                                 Sur Hulk tout les jours (cron)                                 /root/s...
Le script de backup                                 Sur Hulk tout les jours (cron)                                 /root/s...
NAPP-ITlundi 4 juin 12
ÇA TOMBE EN PANNE                  Si Hulk tombe en panne:                  disque en panne: vérifier avec zpool status l’é...
ON PEUT AMÉLIORER QUOI ?        Script de suppression auto des plus vieux snaps sur Thor        Faire un script pour autom...
CE QUE L’ON A PAS ABORDÉ+FUN                                 crossbow                     openVZ + crossbow + ZFS = Zones ...
LECTURE/RÉFÉRENCES    Lecture:    Le wiki    The ZFS doc: http://docs.oracle.com/cd/E19082-01/817-2271/index.html    Bonne...
lundi 4 juin 12
Prochain SlideShare
Chargement dans…5
×

Présentation NAS - MiNET

1 221 vues

Publié le

Présentation de l'infrastructure NAS de MiNET et des technologies Solaris et ZFS utilisées.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 221
Sur SlideShare
0
Issues des intégrations
0
Intégrations
13
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Présentation NAS - MiNET

  1. 1. HULK/THOR Mehdi Sebbar - Juin 2012 mehdi@minet.net MiNETlundi 4 juin 12
  2. 2. RAPPELS SUR L’INFRASTRUCTURE MINET MAJ 26/05: Opportunity sur le prodlundi 4 juin 12
  3. 3. POURQUOI UN NAS ? On veut stocker les disques des VMs On veut stocker des données importanteslundi 4 juin 12
  4. 4. POURQUOI UN NAS ? On veut stocker les disques des VMs On veut stocker des données importantes En local NAS High Availability (HA) Migration à chaud Pertes en cas de panne Fiabilité (raid5, raidZ...) Migration a chaud difficile Possibilité de sauvegarder régulièrement (snapshots, sync sur un autre NAS...) Techniques d’optimisation (compression, deduplication...) Partage plus fin des donnéeslundi 4 juin 12
  5. 5. Les acteurslundi 4 juin 12
  6. 6. HULKlundi 4 juin 12
  7. 7. HULKlundi 4 juin 12
  8. 8. HULK ? Processeur : Athlon II X6 1055T Mémoire : 8Gb Carte réseau : 3 cartes gigabit Disques stockage : 5 x 2 To (5400 tr/min) Disque système : 80 giga (7200 tr/min) Sous NexentaStor community edition, dérivé de Solarislundi 4 juin 12
  9. 9. Unix crée par Sun microsystems Réputé stable et fiable Compatible avec les binaires Linuxlundi 4 juin 12
  10. 10. FEATURES Gestion des disques ~LVM Filesystem ZFS RAID ~ mdadm Zones Containers ~ openVZ Virtual interfaces Dtrace Monitoring Log Virtual switches QOS Crossbow existe sur *BSD, OSXlundi 4 juin 12
  11. 11. Leader en Open Storage «As a general term, open storage refers to storage systems built with an open architecture using industry-standard hardware and open-source software.» Contribue à OpenStack NexantaStor = Opensolaris + Ubuntu Optimisé NAS, iSCSI, Fiber Channel Hulk : Community Edition, max 18Tolundi 4 juin 12
  12. 12. lundi 4 juin 12
  13. 13. lundi 4 juin 12
  14. 14. FEATURES Transactionnel: robuste pas besoin de fsck Pools (volumes) raidZ Deduplication Compression Encryption Snapshots clones send/receive Shares Quotaslundi 4 juin 12
  15. 15. FEATURES Transactionnel: robuste pas besoin de fsck Pools (volumes) raidZ Deduplication Compression Encryption Snapshots clones send/receive Shares Quotaslundi 4 juin 12
  16. 16. POOLS FS FS FS ZFS ZFS ZFS Volume Volume Volume storage pool Disk 1 Disk 2 Disk 3 Disk 1 Vdev filelundi 4 juin 12
  17. 17. les disques physiques sont donnés par la commande format ou dans /dev/dsk Pool basique entre de 2 disques: zpool create tank c1t0d0 c1t1d0 Exemple: mkfile 100m /A mkfile 100m /B mkfile 100m /C zpool create -f data /A /B zpool status zpool list cp -r /etc/ssh /data On veut ajouter un disque zpool add -f data /Clundi 4 juin 12
  18. 18. Mirror (raid1) zpool create -f data mirror /A /B On supprime un des disques: zpool export data mv /A /A.old zpool import -d /B data zpool status On change le disque: zpool replace -f data /A /C raid 1+0 zpool create -f data mirror /A /B mirror /C /Dlundi 4 juin 12
  19. 19. RAIDZ ? Problème du «RAID 5 write-hole» On utilise ça à MiNETlundi 4 juin 12
  20. 20. Exemple: zpool create -f data raidz /A /B /C df -h zpool export data cat /dev/urandom > /A zpool import -d /B data zpool status zpool replace -f data /A /D A chaud, pas de délais de reconstruction, pas de coupure !lundi 4 juin 12
  21. 21. DEDUPLICATION Les données (fichiers, blocs, ou suites d’octets) sont checksummed grâce à une fonction de hash qui permet de détecter avec une haute probabilité les redondances Si on utilise un algorithme de hash fiable comme le SHA256, la probabilité de collision est ~ 10^-77 Utile pour des données redondées comme les disques de VM ZFS fait de la dedup au niveau bloc, en temps réel : nécessite CPU/RAM !lundi 4 juin 12
  22. 22. Exemple: zfs set dedup=on data cp -r .mozilla/ /data/mo cp -r .mozilla/ /data/mo2 cp -r .mozilla/ /data/mo3 df -h zpool listlundi 4 juin 12
  23. 23. ZFS DATASET On peut en créer autant qu’on veut sur un pool Pas besoin d’allouer ou de formater On utilise la commande zfs pour les administrer On peut donner des propriétés distinctes à chaque datasets ZFS ZFS ZFS storage poollundi 4 juin 12
  24. 24. zfs create data/test le dataset est monté automatiquement zfs list zfs rename data/test data/test_old zfs get all data/test_old On voit que le dataset hérite des propriétés du pool parent zfs set dedup=off data/test_old zfs get -r dedup data zfs set compression=on data/test_old zfs set quota=50G data/test_old On peut faire des quotas par users et groups zfs set sharenfs=rw data/test_old attention aux droits (cf chown dans les references) zfs destroy data/test_oldlundi 4 juin 12
  25. 25. SNAPSHOT zfs snasphot pool/dataset@nom_du_snapshot zfs list -t all zfs rollback pool/dataset@nom_du_snapshot zfs destroy pool/dataset@nom_du_snapshotlundi 4 juin 12
  26. 26. THORlundi 4 juin 12
  27. 27. THORlundi 4 juin 12
  28. 28. THOR En cas de panne critique de Hulk, on a plus les disques de VMS Comment récupérer les données ?lundi 4 juin 12
  29. 29. THOR En cas de panne critique de Hulk, on a plus les disques de VMS Comment récupérer les données ? En synchronisant Hulk et Thor régulièrement. Hulk Thorlundi 4 juin 12
  30. 30. ZFS SEND / ZFS RECEIVE On envoie que des snapshots zfs snapshot data/test@20120530 On envoie le snapshot dans un fichier: zfs send data/test@20120530 > file On peut même compresser ! zfs send data/test@20120530 | gzip > file.gz Encrypter ! zfs send data/test@20120530 | gzip | openssl enc -aes-256-cbc -a -salt > file.gz.ssl Et récupérer biensûr ! zfs receive data/backup < file openssl enc -d -aes-256-cbc -a -in file.gz.ssl | gunzip | zfs receive data/backup Mais surtout pour envoyer sur Thor on utilise ssh ! zfs send data/test@20120530 | ssh 192.168.102.140 zfs receive data/test Le premier send envoie tout le snapshot, il est donc long, ensuite on envoie des incréments: zfs send -i data/test@20120530 data/test@20120531 | ssh 192.168.102.140 zfs receive data/test Attention, le snapshot de destination doit etre en lecture seule: zfs set readonly=on data/testlundi 4 juin 12
  31. 31. Le script de backup Sur Hulk tout les jours (cron) /root/scriptSync.py <dataset> On vérifie la connexion vers Thor On récupère le dernier snapshot du dataset snapPrecedent présent sur Thor On crée sur Hulk un snapshot snap On envoie l’incrément entre snapPrecedent et snap sur Thor via zfs send et ssh On vérifie que le snapshot snap est présent sur Thor On supprime les précédents snapshots sur Hulk sauf snaplundi 4 juin 12
  32. 32. Le script de backup Sur Hulk tout les jours (cron) /root/scriptSync.py <dataset> Hulk Thor On vérifie la connexion vers Thor On récupère le dernier snapshot du dataset snapPrecedent présent sur Thor On crée sur Hulk un snapshot snap On envoie l’incrément entre snapPrecedent et snap sur Thor via zfs send et ssh On vérifie que le snapshot snap est présent sur Thor On supprime les précédents snapshots sur Hulk sauf snaplundi 4 juin 12
  33. 33. NAPP-ITlundi 4 juin 12
  34. 34. ÇA TOMBE EN PANNE Si Hulk tombe en panne: disque en panne: vérifier avec zpool status l’état du raid Z, remplacer le disque (possible à chaud mais vaut mieux éteindre Hulk) Sinon: éteindre Hulk, désactiver readonly sur le snapshot de Thor, activer les partages NFS, changer les ips.lundi 4 juin 12
  35. 35. ON PEUT AMÉLIORER QUOI ? Script de suppression auto des plus vieux snaps sur Thor Faire un script pour automatiser la transition Hulk->Thor Activer les interfaces virtuelles (crossbow), activer les partages NFS link aggregation sur Thor jumbo frames partoutlundi 4 juin 12
  36. 36. CE QUE L’ON A PAS ABORDÉ+FUN crossbow openVZ + crossbow + ZFS = Zones ZFS + DTrace + Zones + KVM = SmartOS Freebsd + ZFS = freenas le mieux c’est solaris ! Openindianalundi 4 juin 12
  37. 37. LECTURE/RÉFÉRENCES Lecture: Le wiki The ZFS doc: http://docs.oracle.com/cd/E19082-01/817-2271/index.html Bonne doc: http://hub.opensolaris.org/bin/download/Community+Group+zfs/docs/zfslast.pdf ZFS send and receive: http://www.128bitstudios.com/2010/07/23/fun-with-zfs-send-and-receive/ ZFS Deduplication: https://blogs.oracle.com/bonwick/entry/zfs_dedup http://www.zfsbuild.com/ http://hub.opensolaris.org/bin/view/Project+crossbow/WebHome Probleme du write hole sur raid5: http://en.wikipedia.org/wiki/RAID_5_write_hole https://blogs.oracle.com/orasysat/entry/so_what_makes_zfs_so probleme de chown sur NFS: http://www.oracle.com/technetwork/database/clusterware/overview/ thirdvoteonnfs-129371.pdf References: http://www.dataspan.com/uploads/images/de-duplication-sml.png http://cdn1.iconfinder.com/data/icons/database/PNG/128/Database_3.png http://www.picturesdepot.com/wallpapers/207155/davids+hulk.html http://ftp-admin.blogspot.co.uk/2011/11/raid-z.htmllundi 4 juin 12
  38. 38. lundi 4 juin 12

×