Présentation NAS - MiNET
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Présentation NAS - MiNET

  • 965 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
965
On Slideshare
965
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. HULK/THOR Mehdi Sebbar - Juin 2012 mehdi@minet.net MiNETlundi 4 juin 12
  • 2. RAPPELS SUR L’INFRASTRUCTURE MINET MAJ 26/05: Opportunity sur le prodlundi 4 juin 12
  • 3. POURQUOI UN NAS ? On veut stocker les disques des VMs On veut stocker des données importanteslundi 4 juin 12
  • 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. Les acteurslundi 4 juin 12
  • 6. HULKlundi 4 juin 12
  • 7. HULKlundi 4 juin 12
  • 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. Unix crée par Sun microsystems Réputé stable et fiable Compatible avec les binaires Linuxlundi 4 juin 12
  • 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. 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. lundi 4 juin 12
  • 13. lundi 4 juin 12
  • 14. FEATURES Transactionnel: robuste pas besoin de fsck Pools (volumes) raidZ Deduplication Compression Encryption Snapshots clones send/receive Shares Quotaslundi 4 juin 12
  • 15. FEATURES Transactionnel: robuste pas besoin de fsck Pools (volumes) raidZ Deduplication Compression Encryption Snapshots clones send/receive Shares Quotaslundi 4 juin 12
  • 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. 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. 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. RAIDZ ? Problème du «RAID 5 write-hole» On utilise ça à MiNETlundi 4 juin 12
  • 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. 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. 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. 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. 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. 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. THORlundi 4 juin 12
  • 27. THORlundi 4 juin 12
  • 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. 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. 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. 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. 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. NAPP-ITlundi 4 juin 12
  • 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. 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. 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. 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. lundi 4 juin 12