High Availability Storage with DRBD + Heartbeat + NFS on Debian 8

Overview

This guide will help you setup a highly available NFS server on Debian Jessie. This is a relatively battle-tested configuration, and there is plenty information out there on how it works.

This guide will give you a setup as follows:

  • One active NFS server with its own public, private and floating IP (VIP)
  • One passive hot standby NFS server with its own public and private IP
  • Automatic failover when one of the nodes becomes unresponsive or unreachable.
  • Unicast cluster syncronization (so it works on Linode and other places where multicast (like corosync) isn’t available).

Servers

While writing this guide, I used 2 KVM machine on Proxmox 4.2 (nfsnode01 and nfsnode02). Each VM configured as follows:

  • Default Debian Jessie install from a netinst iso
  • 512MB RAM
  • 1 x 20GB OS disk (all partitions – /dev/sda)
  • 1 x 20GB data disk (/dev/sdb)
  • Each node has 2x NICs (1x on network and
Continue Reading

High Availability Storage with iSCSI Target on Debian 8

Software

  • Linux-HA – Linux clustering software.
  • DRBD – Distributed Replicated Block Device. Allows you to RAID1 partitions over IP.
  • iscsitarget – Linux implementation of an iSCSI target.

 

Configuration

This guide is based on the following:

  • Two nodes (Debian 8.5 AMD64)
  • Each node has 2x NICs (1x on network and 1x for DRBD data).
  • Nodes:
    • san01 (“node1”) / 192.168.0.242 / eth0
      • DRBD sync network: node1-drbd / 10.50.40.21 / eth1
    • san02 (“node2”) / 192.168.0.243 / eth0
      • DRBD sync network: node2-drbd / 10.50.40.22 / eth1
  • Cluster IP address: 192.168.0.245

Note: Unless explicitly stated (i.e. commands prefixed with [node1] or [node2]), commands and configurations should be completed on both nodes.

LVM

We install lvm2 and create a VG.

apt-get install -y lvm2
pvcreate  /dev/sdb

Physical volume “/dev/sdb” successfully created

vgcreate drbddev01 /dev/sdb

Volume group “drbddev01” successfully created

Create DRBD meta data Logical Volume on Volume Group drbddev01:

lvcreate -L1G -ndrbd-metadata drbddev01

Logical volume

Continue Reading

Install GlusterFS Cluster on Debian 8

Introduction

GlusterFS is a scalable network filesystem. Using common off-the-shelf hardware, you can create large, distributed storage solutions for media streaming, data analysis, and other data- and bandwidth-intensive tasks. GlusterFS is free and open source software.

Preliminary Note

In this tutorial, I will use three systems, two servers and a client:

  • gfsnode01.lplinux.com.ar: IP address 192.168.1.100 (server)
  • gfsnode02.lplinux.com.ar: IP address 192.168.1.101 (server)
  • proxmox01.lplinux.com.ar: IP address 192.168.1.102 (client)

All three systems should be able to resolve the other systems’ hostnames. If this cannot be done through DNS, you should edit the /etc/hosts file so that it looks as follows on all three systems:

vim /etc/hosts
127.0.0.1 localhost
192.168.1.100 gfsnode01.lplinux.com.ar gfsnode01
192.168.1.101 gfsnode02.lplinux.com.ar gfsnode02
192.168.1.102 proxmox01.lplinux.com.ar proxmox01


# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

(It is also possible to use IP addresses instead of hostnames in the following setup.

Continue Reading