resource example {
	options {
		on-no-data-accessible suspend-io;
	}

	net {
		cram-hmac-alg "sha1";
		shared-secret "secret_string";
	}

	# The disk section is possible on resource level and in each
	# volume section
	disk {
		# If you have a resonable RAID controller
		# with non volatile write cache (BBWC, flash)
		disk-flushes no;
		disk-barrier no;
		md-flushes no;
	}

	# volume sections on resource level, are inherited to all node
	# sections. Place it here if the backing devices have the same
	# device names on all your nodes.
	volume 1 {
		device minor 1;
		disk /dev/sdb1;
		meta-disk internal;

		disk {
			resync-after example/0;
		}
	}

	on wurzel {
		address	192.168.47.1:7780;

		volume 0 {
		       device minor 0;
		       disk /dev/vg_wurzel/lg_example;
		       meta-disk /dev/vg_wurzel/lv_example_md;
		}
	}
	on sepp {
		address	192.168.47.2:7780;

		volume 0 {
		       device minor 0;
		       disk /dev/vg_sepp/lg_example;
		       meta-disk /dev/vg_sepp/lv_example_md;
		}
	}
}

resource "ipv6_example_res" {
	net {
		cram-hmac-alg "sha1";
		shared-secret "ieho4CiiUmaes6Ai";
	}

	volume 2 {
		device	"/dev/drbd_fancy_name" minor 0;
		disk	/dev/vg0/example2;
		meta-disk internal;
	}

	on amd {
		# Here is an example of ipv6.
		# If you want to use ipv4 in ipv6 i.e. something like [::ffff:192.168.22.11]
		# you have to set disable-ip-verification in the global section.
		address	ipv6 [fd0c:39f4:f135:305:230:48ff:fe63:5c9a]:7789;
	}

	on alf {
		address ipv6 [fd0c:39f4:f135:305:230:48ff:fe63:5ebe]:7789;
	}
}


#
# A two volume setup with a node for disaster recovery in an off-site location.
#

resource alpha-bravo {
	net {
		cram-hmac-alg "sha1";
		shared-secret "Gei6mahcui4Ai0Oh";
	}

	on alpha {
		volume 0 {
			device minor 0;
			disk /dev/foo;
			meta-disk /dev/bar;
		}
		volume 1 {
			device minor 1;
			disk /dev/foo1;
			meta-disk /dev/bar1;
		}
		address	192.168.23.21:7780;
	}
	on bravo {
		volume 0 {
			device minor 0;
			disk /dev/foo;
			meta-disk /dev/bar;
		}
		volume 1 {
			device minor 1;
			disk /dev/foo1;
			meta-disk /dev/bar1;
		}
		address	192.168.23.22:7780;
	}
}

resource stacked_multi_volume {
	net {
		protocol A;

		on-congestion pull-ahead;
		congestion-fill 400M;
		congestion-extents 1000;
	}

	disk {
		c-fill-target 10M;
	}

	volume 0 { device minor 10; }
	volume 1 { device minor 11; }

	proxy {
		memlimit 500M;
		plugin {
			lzma contexts 4 level 9;
		}
	}

	stacked-on-top-of alpha-bravo {
		address	192.168.23.23:7780;

		proxy on charly {
			# In the regular production site, there is a dedicated host to run
			# DRBD-proxy
			inside    192.168.23.24:7780; # for connections to DRBD
			outside   172.16.17.18:7780; # for connections over the WAN or VPN
			options {
				memlimit 1G; # Additional proxy options are possible here
			}
		}
	}
	on delta {
		volume 0 {
			device minor 0;
			disk /dev/foo;
			meta-disk /dev/bar;
		}
		volume 1 {
			device minor 1;
			disk /dev/foo1;
			meta-disk /dev/bar1;
		}
		address	127.0.0.2:7780;

		proxy on delta {
			# In the DR-site the proxy runs on the machine that stores the data
			inside 127.0.0.1:7780;
			outside 172.16.17.19:7780;
		}
	}
}

resource drbd_9_two_connection {
	volume 0 {
	       device minor 19;
	       disk /dev/foo/bar;
	       meta-disk internal;
	}

	on alpha {
		node-id 0;
		address 192.168.31.1:7800;
	}
	on bravo {
		node-id 1;
		address 192.168.31.2:7800;
	}
	on charlie {
		node-id 2;
		address 192.168.31.3:7800;
	}

	net {
		ko-count 3;
	}

	connection "optional name" {
		host alpha;
		host bravo;
		net { protocol C; }
	}

	connection {
		host alpha address 127.0.0.1:7800 via proxy on alpha {
			inside 127.0.0.2:7800;
			outside 192.168.31.1:7801;
		}
		host charlie address 127.0.0.1:7800 via proxy on charlie {
			inside 127.0.0.2:7800;
			outside 192.168.31.3:7800;
		}
		net { protocol A; }

		volume 0 {
			disk {
				resync-rate 10M;
				c-plan-ahead 20;
				c-delay-target 10;
				c-fill-target 100;
				c-min-rate 10;
				c-max-rate 100M;
			}
		}
	}

	connection {
		host bravo address 127.0.0.1:7800 via proxy on bravo {
			inside 127.0.0.2:7800;
			outside 192.168.31.2:7801;
		}
		host charlie address 127.0.0.1:7801 via proxy on charlie {
			inside 127.0.0.2:7801;
			outside 192.168.31.3:7801;
		}
		net { protocol A; }
	}
}

resource drbd_9_mesh {
	options {
		quorum majority;
		on-no-quorum io-error;
	}
	volume 0 {
	       device minor 21;
	       disk /dev/foo/bar2;
	       meta-disk internal;
	}

	on alpha {
		node-id 0;
		address 192.168.31.1:7900;
	}
	on bravo {
		node-id 1;
		address 192.168.31.2:7900;
	}
	on charlie {
		node-id 2;
		address 192.168.31.3:7900;
	}

	connection-mesh {
		hosts alpha bravo charlie;
		net {
			protocol C;
		}
	}
}

resource drbd_9_multi_path {
	volume 0 {
	       device minor 12;
	       disk /dev/foo/bar3;
	       meta-disk internal;
	}

	on alpha {
		node-id 0;
	}
	on bravo {
		node-id 1;
	}

	connection {
		path {
			host alpha address 192.168.41.1:7900;
			host bravo address 192.168.41.2:7900;
		}
		path {
			host alpha address 192.168.42.1:7900;
			host bravo address 192.168.42.2:7900;
		}
		net {
			transport rdma;
			sndbuf-size 10M;
			rcvbuf-size 10M;
			max-buffers 20000;
			protocol C;
		}
	}
}

resource dless {
	volume 0 {
		device minor 99;
		disk /dev/foo/bar4;
		meta-disk internal;
	}
	on fat-tyre {
		node-id 0;
	}
	on other {
		node-id 1;
		volume 0 {
			disk none;
		}
	}
	connection {
		host fat-tyre address 10.43.9.50:7000;
		host other address 10.43.9.51:7000;
	}
}
