====== Storage ====== ===== Terms ===== * **shared** * do not set local storage as shared, because content on each node is different * One major benefit of storing VMs on shared storage is the ability to live-migrate running machines without any downtime, as all nodes in the cluster have direct access to VM disk images. There is no need to copy VM image data, so live migration is very fast in that case. * **thin-provisioning** - allocates block when they are written. ===== Content types ===== ^ content types ^ type ^ description ^ path ^ | Disk image | images | KVM-Qemu VM images (VM disks) | ''local:230/example-image.raw'' | | ISO image | iso | | ''local:iso/debian-501-amd64-netinst.iso'' | | Container template | vztmpl | | ''local:vztmpl/debian-5.0-joomla_1.5.9-1_i386.tar.gz'' | | VZDump backup file | backup | | | Container | roodir | Allow to store container data | | | none | prevent using block device directly for VMs (to create LVM on top) | | | Snippets | snippets | aka hookscripts (for example guest hook scripts) | '':snippets/'' | ''iscsi-storage:0.0.2.scsi-14f504e46494c4500494b5042546d2d646744372d31616d61'' ==== File level storage dir layout ==== * images - (VM images) - ''images//'' * raw, qcow2, vmdk * iso - (ISO images) - ''template/iso/'' * vztmpl - (Container templates) - ''template/cache/'' * backup - (Backup files) - ''dump/'' * snippets - (Snippets) - ''snippets/'' ===== Default storage for ZFS ===== * **local**: file-level storage - you can upload iso images and place backups there. * **local-zfs**: this is used to store VM images. Note: Both resides on the same zfs pool. dir: local path /var/lib/vz content iso,vztmpl,backup zfspool: local-zfs pool rpool/data sparse 1 content images,rootdir ===== Storage types ===== * File level storage * poll types: * **directory** shared: **NO** * **glusterFS** shared: **YES** * **nfs** shared: **YES** * **cifs** shared: **YES** * features * any POSIX compatible filesystem pointed by path * no snapshot by FS: VMs with qcow2 are capable to do snapshots * any content type: * virtual disk images, containers, templates, ISO images, backup files * Block level storage * ''iscsidirect'' iSCSI user mode (''libiscsi2'') * content types: images * format: raw, shared: YES, no snapshots, no clones * ''iscsi'' * content types: images, none * format: raw, shared: YES, no snapshots, no clones * ''LVM'' * possible to create on top of iSCSI LUN to get managable disk space * content types: images, rootdir * format: raw, shared: YES (iSCSI), no snapshots, no clones * ''LVM thin'' * new thin volume type on top of existing LVM VG * thin-provisioning * content types: images, rootdir * format: raw, shared: NO, snapshots, clones * ''ZFS over iSCSI'' - to use **ZFS from remote** system using iSCSI * benefits of ZFS: * for VMs: zfs volume per VM, live snaphots, cloning * thin provision * ''ZFS'' * local node ZFS * content types: images, rootdir * format: raw, subvol; shared: NO, snapshots YES, clones YES ===== poll type ===== * Network storage * LVM Group on iSCSI * can be shared * ZFS over iSCSI * thin provisioning * iSCSI target / iSCSI direct (user-level library ''libiscsi2'') * NFS * Ceph RDB * GlusterFS * Local storage * LVM Group overy any block device * LVM Thin pools: only on LOCAL - cannot be shared! * Directory (storage on existing FS) * ZFS ===== Local storage ===== * **Backups** - /var/lib/vz/dump * **ISOs** - /var/lib/vz/template/iso * **Images** - /var/lib/vz/images * **Templates** - /var/lib/vz/template/cache ==== storage for ISOs ==== By default it is stored in ''local'' storage. It is possible to upload ISOs directly using SCP to ''/var/lib/vs/template/iso''.