200 likes | 220 Views
Learn about virtualisation on Linux, storage concepts, HA strategies, costs, and enhancing system performance. Implement Linux KVM, filesystems, and high-availability solutions for a robust IT infrastructure.
E N D
Virtualisation on Linux and storage high-availability • (C) 2011 - CS / MI Adfinis SyGroup AG
Introduction • Adfinis SyGroup AG • Mario Iseli & Christian Schläppi
Table of contents • Virtualisation overview • Linux KVM • Requirements for dedicated storage • Storage concepts • Costs
Table of contents • HA concepts • Pimp your system • Filesystems • Our flagship implementation ;-)
Virtualisation overview • Full virtualisation (Hypervisor) • Para virtualisation (aka “pimped chroot”)
Linux KVM • Hypervisor, “out of the box” • libvirt • Frontend API • Backend API • nw-filter definition • Storage pool definition
Requirements for dedicated “Storage” • Problems with images • Complexity of migrations (large downtime) • Load-balancing • High-availability • Performance bottlenecks
Storage concepts • NFS (file-sharing, common HW) • iSCSI (block-device sharing, common HW) • FibreChannel (block-device sharing, custom HW)
Cost overview • “real” SANs (appliance solutions) • licensing • feature licensing • high CapEx and high Opex • “custom” Storage
High-availability concepts • Master-Master Clusters • Master-Slave Clusters • Multinode Clusters • Load distribution in clusters
General pimping • Memory sharing (KSM) • Network bonding (EtherChannel, Trunk, Aggregation - however you’d like to call it, IEEE802.3ad aka LACP) • VLANs (Trunking... again - IEEE802.1q) • Logical volumes (LVM)
Linux HA solutions • Pacemaker / Corosync • DRBD
Filesystems • Clustered filesystems • OCFS2 • GFS • GlusterFS • Locking (DLM) • cLVM
Implementation • Architecture overview • Multipathing (and “protocol C” in DRBD) • KVM storage-management (attach a whole target from libvirt) • Config snippets
node node1 node node2 primitive resFSvarwww ocf:heartbeat:Filesystem \ params device="/dev/drbd0" directory="/var/www" fstype="xfs" options="noatime" primitive resHTTPD lsb:lighttpd \ op monitor interval="10s" timeout="5s" \ meta target-role="Started" primitive resIntIP ocf:heartbeat:IPaddr2 \ params ip="10.10.10.30" cidr_netmask="24" primitive resNFS-Kernel-Server lsb:nfs-kernel-server primitive resPing ocf:pacemaker:ping \ params host_list="router1 router2" multiplier="100" \ op monitor interval="10s" timeout="20s" \ op start interval="0" timeout="90s" \ op stop interval="0" timeout="100s"
group groupService resPubIP resIntIP resNFS-Common resNFS-Kernel-Server ms msDRBD resDRBD \ meta master-max="2" notify="true" target-role="Master" is-managed="true" clone clonePing resPing \ meta globally-unique="false" location locServiceonConnected groupService \ rule $id="locServiceonConnected-rule" -inf: not_defined pingd or pingd lte 0 colocation colServiceDRBD inf: groupService msDRBD:Master order ordDRBDbeforeService 0: msDRBD:promote groupService property $id="cib-bootstrap-options" \ stonith-enabled="true" \ no-quorum-policy="ignore" \ maintenance-mode="false"
Performance comparison • Values with iSCSI • Downtime with storage-node failure
Questions?(cu @ social event) • (C) 2011 - CS / MI Adfinis SyGroup AG