No description
  • Jinja 74.7%
  • Shell 25.3%
Find a file
2017-04-04 20:12:37 -04:00
.vagrant/provisioners/ansible/inventory adding ) after snapshot script 2017-04-04 20:12:37 -04:00
group_vars creation de snapshot automatic avec systemd 2017-04-04 14:38:34 -04:00
roles adding ) after snapshot script 2017-04-04 20:12:37 -04:00
installLXC first set up 2017-03-01 22:57:34 -05:00
installZFS first set up 2017-03-01 22:57:34 -05:00
lxcZFS first set up 2017-03-01 22:57:34 -05:00
playbook.yml update du 20 mars 2017-03-20 15:03:06 -04:00
README.md Ajout du support pour plusieurs dataset 2017-03-17 15:02:23 -04:00
Vagrantfile Update Vagrantfile 2017-03-12 13:51:41 -04:00
zfsinstall.sh Update, pexepct s'install avec wheel. Ajout du scipt d'installation de zfs 2017-03-12 13:00:54 -04:00

ZFS installation sur debian jessie avec Ansible

Configuration

le script ansible est supposé de créer un pool zfs raidz sur les trois disques dur générés par vagrant. Les pool devraient être compressé et dedupliqué Ensuite, le script doit changer le dossier pour stocker les containeurs lxc vers le pool zfs. Pour tester, le script va créer 2 conteneurs de Débian pour voir si la compression et la déduplication fonctionnent

Prévu de fonctionner sur Debian jessie amd64

Prérequis sur la machine hôte

  • vagrant
  • ansible 2.2

Pour démarer le setup

Dans le dossier du projet, exécuter vagrant up

Réseau

Réseau NAT

Variables

Les variables se trouvent dans ./group_vars/all et dans ./roles/pool-creation/vars/main.yml

Vagrant

Voici comment les disques dur sont générés (les disques dur sont stockés dans ./hd)

  config.vm.provider "virtualbox" do |vb|

    sdb = './hd/sdb.vdi'  
    sdc = './hd/sdc.vdi'  
    sdd = './hd/sdd.vdi'  

    hdDirectory = 'hd'
    hdSize = 10

    #creation du dossier si il nexiste pas

    if not Dir.exists?(hdDirectory)
      Dir.mkdir(hdDirectory)
    end

    if not File.exists?(sdb)  
        #le lien pour la documentation 
        #https://www.virtualbox.org/manual/ch08.html#vboxmanage-createvdi
        vb.customize ['createhd', '--filename', sdb, '--variant', 'Standard', '--size', hdSize*1024]
    end  


    if not File.exists?(sdc)  
        vb.customize ['createhd', '--filename', sdc, '--variant', 'Standard', '--size', hdSize*1024]
    end  

    if not File.exists?(sdd)  
        vb.customize ['createhd', '--filename', sdd, '--variant', 'Standard', '--size', hdSize*1024]

        

        # Attaching the disks using the default SATA controller via the filepath
        # https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach
        vb.customize ['storageattach', :id,  '--storagectl', 'SATA Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', sdb]
        vb.customize ['storageattach', :id,  '--storagectl', 'SATA Controller', '--port', 2, '--device', 0, '--type', 'hdd', '--medium', sdc]
        vb.customize ['storageattach', :id,  '--storagectl', 'SATA Controller', '--port', 3, '--device', 0, '--type', 'hdd', '--medium', sdd]
    end  
  end

Configuration après installation

ZFS

root@jessie:~# zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
zfs-pool      99.9K  19.2G  24.0K  /zfs-pool
zfs-pool/lxd  24.0K  19.2G  24.0K  /zfs-pool/lxd
------------------------------------------------
root@jessie:~# zpool list
NAME       SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
zfs-pool  29.8G   198K  29.7G         -     0%     0%  1.00x  ONLINE  -
------------------------------------------------
root@jessie:~# zfs get compression 
NAME          PROPERTY     VALUE     SOURCE
zfs-pool      compression  off       default
zfs-pool/lxd  compression  on        local
------------------------------------------------
root@jessie:~# zfs get dedup
NAME          PROPERTY  VALUE          SOURCE
zfs-pool      dedup     on             local
zfs-pool/lxd  dedup     on             local

Possibilité d'avoir plusieur dataset dans le pool zfs, non affichés ici.

LXC Après installation

root@jessie:~# zpool list
NAME       SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
zfs-pool  29.8G   260M  29.5G         -     0%     0%  2.03x  ONLINE  -
root@jessie:~# zfs list
NAME           USED  AVAIL  REFER  MOUNTPOINT
zfs-pool       341M  19.0G  24.0K  /zfs-pool
zfs-pool/lxc   336M  19.0G   336M  /zfs-pool/lxc
root@jessie:~# zfs get compressratio 
NAME          PROPERTY       VALUE  SOURCE
zfs-pool      compressratio  1.75x  -
zfs-pool/lxc  compressratio  1.75x  -

Ici, on peut voir que les fichiers des conteneurs sont compressés et qu'ils sont dédupliqués. Possibilité d'avoir plusieur dataset dans le pool zfs, non affichés ici.