<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<refentry id="re-drbdadm">
  <refentryinfo>
    <date>6 December 2012</date>

    <productname>DRBD</productname>

    <productnumber>9.0.0</productnumber>
  </refentryinfo>

  <refmeta>
    <refentrytitle>drbdadm</refentrytitle>

    <manvolnum>8</manvolnum>

    <refmiscinfo class="manual">System Administration</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>drbdadm</refname>

    <refpurpose>Utility for DRBD administration<indexterm significance="normal">
        <primary>drbdadm</primary>
      </indexterm></refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis sepchar=" ">
      <command moreinfo="none">drbdadm</command>

      <arg choice="opt" rep="repeat">options</arg>

      <arg choice="opt" rep="norepeat">--<arg choice="opt"
      rep="repeat"><replaceable>backend-options</replaceable></arg></arg>

      <arg choice="req" rep="norepeat"><replaceable>command</replaceable></arg>

      <arg choice="req" rep="repeat"><replaceable>context</replaceable></arg>

      <!--
      <group choice="opt" rep="norepeat">
        <arg choice="req" rep="norepeat">all</arg>

        <arg choice="req" rep="repeat"><replaceable>resource<arg choice="opt"
        rep="norepeat">/volume</arg></replaceable></arg>
      </group>
      -->
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>The <option>drbdadm</option> utility is used for managing DRBD based
      on its configuration files, see <citerefentry>
      <refentrytitle>drbd.conf</refentrytitle> <manvolnum>5</manvolnum>
      </citerefentry>.  It translates high-level commands into one or more
      lower-level commands for the <option>drbdsetup</option> and
      <option>drbdmeta</option> utilities, which control the kernel module
      and manipulate the on-disk metadata.</para>

    <para>Depending on the command, the <option>drbdadm</option> utility
      operates on one or more resources, devices, connections, or peer devices.
      The following command contexts are defined:</para>

    <para>
      <variablelist>
	<varlistentry>
	  <term><replaceable>resource</replaceable></term>

	  <listitem>
	    <para>A resource specified by name, or the keyword
	      <option>all</option> for all defined resources.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><replaceable>device</replaceable></term>

	  <listitem>
	    <para>A device, specified by minor number
	      (<option>minor-</option><replaceable>minornumber</replaceable>, e.g. <option>minor-</option><replaceable>0</replaceable>) or by resource and
	      volume number
	      (<replaceable>resource</replaceable>/<replaceable>volume</replaceable>).
	      If only a <replaceable>resource</replaceable> is
	      specified, the command iterates over all devices of that resource.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><replaceable>connection</replaceable></term>

	  <listitem>
	    <para>A connection, specified by resource and connection name
	      (<replaceable>resource</replaceable>:<replaceable>connection-name</replaceable>).
	      If only a <replaceable>resource</replaceable> is specified, the
	      command iterates over all connections of that resource.
	    </para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><replaceable>peer_device</replaceable></term>

	  <listitem>
	    <para>A peer device, specified by resource, connection name, and
	      volume number
	      (<replaceable>resource</replaceable>:<replaceable>connection-name</replaceable>/<replaceable>volume</replaceable>).
	      If only a <replaceable>resource</replaceable>,
	      <replaceable>device</replaceable>, or
	      <replaceable>connection</replaceable> is specified, the command
	      iterates over all peer devices of that resource, device, or
	      connection.</para>
	  </listitem>
	</varlistentry>
      </variablelist>
    </para>

    <para>All options following a double-dash are passed through to the
      lower-level utilities as specified.  In addition,
      <option>drbdadm</option> understands most of the options of
      <option>drbdsetup</option>, and will pass them through even without the
      double-dash.
    </para>
  </refsect1>

  <refsect1>
    <title>Options</title>

    <variablelist>
      <varlistentry>
        <term><option>-d</option>, <option>--dry-run</option></term>

        <listitem>
	  <para>Show which commands <option>drbdadm</option> would execute
	    instead of actually executing them (for example, <command
	      moreinfo="none">drbdadm -d up <replaceable>resource</replaceable></command>).
	    This can be a useful way to learn how <command
	      moreinfo="none">drbdsetup</command> and <command
	      moreinfo="none">drbdmeta</command> are used.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-c</option>, <option>--config-file</option>
        <replaceable>file</replaceable></term>

        <listitem>
	  <para>Use an alternative configuration file.  By default,
	    <option>drbdadm</option> will use the the first of the following
	    files that exists: <option>/etc/drbd-90.conf</option>,
	    <option>/etc/drbd-84.conf</option>,
	    <option>/etc/drbd-83.conf</option>,
	    <option>/etc/drbd-82.conf</option>,
	    <option>/etc/drbd-08.conf</option>,
	    <option>/etc/drbd.conf</option>.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-t</option>, <option>--config-to-test</option>
        <replaceable>file</replaceable></term>

        <listitem>
	  <para>Check an additional configuration file.  This option is only
	    allowed with the dump and the sh-nop commands.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-s</option>, <option>--drbdsetup</option>
        <replaceable>file</replaceable></term>

        <listitem>
          <para>Specifies the full path to the <option>drbdsetup</option> program. If this option
          is omitted, drbdadm will look for it beneath itself first, and then in the PATH.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-m</option>, <option>--drbdmeta</option>
        <replaceable>file</replaceable></term>

        <listitem>
          <para>Specifies the full path to the <option>drbdmeta</option> program. If this option
          is omitted, drbdadm will look for it beneath itself first, and then in the PATH.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-S</option>, <option>--stacked</option></term>

        <listitem>
          <para>Perform the command on a stacked resource.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Commands</title>
    <variablelist>
      <varlistentry>
	<term>adjust
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>adjust</secondary>
	    </indexterm> Adjust the configuration of the kernel module so that
	    it matches the configuration files.  The result should be the same
	    as when stopping and restarting all resources (<command
	      moreinfo="none">drbdadm down all</command> followed by <command
	      moreinfo="none">drbdadm up all</command>), but without the
	    interruptions.</para>

	  <para>Note that the adjust command can misinterpret the configuration
	    change in some cases.  To be safe, check what the command would do
	    (with the <option>--dry-run</option> option) before running the
	    actual command.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>adjust-with-progress
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>adjust-with-progress</secondary>
	    </indexterm> The same as <option>adjust</option>, but with some
	    more information about the command's progress.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>apply-al
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>apply-al</secondary>
	      </indexterm> Apply the activity log of the specified device.  See
	      <citerefentry> <refentrytitle>drbdmeta</refentrytitle>
		<manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>attach
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
	  <para>Attach a lower-level device to an existing replicated device.
	    See <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>check-resize
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>check-resize</secondary>
            </indexterm> Call drbdmeta to eventually move internal meta data. If the backing
          device was resized, while DRBD was not running, meta data has to be moved to the end of
          the device, so that the next <option>attach</option> command can succeed.</para>
        </listitem>
	<!-- FIXME: This is not very clear.  When does the end user need to
	     call this command? -->
      </varlistentry>

      <varlistentry>
        <term>connect
	  <arg choice="req" rep="norepeat"><replaceable>connection</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>connect</secondary> </indexterm> Activate an exisiting
	      connection to a peer. The connection needs to be created first
	      with the <option>new-peer</option> command, and have at least
	      one path created with the <option>new-path</option> command.
	      See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>create-md
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>create-md</secondary>
	    </indexterm> Initialize the metadata of a device. This is necessary
	    before a device can be attached; see <citerefentry>
	      <refentrytitle>drbdmeta</refentrytitle> <manvolnum>8</manvolnum>
	  </citerefentry> for details.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>cstate
	  <arg choice="req" rep="norepeat"><replaceable>connection</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>cstate</secondary>
	    </indexterm> Show the current state of a connection.  See
	    <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>detach
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>detach</secondary> </indexterm> Detach the lower-level
	    device of a replicated device. See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	  </citerefentry> for details.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>disconnect
	  <arg choice="req" rep="norepeat"><replaceable>connection</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>disconnect</secondary> </indexterm> Remove a
	    connection to a peer host.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	  </citerefentry> for details.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>disk-options
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>
              <secondary>disk-options</secondary>
	      </indexterm> Cange the disk options of an attached lower-level
	      device.  See <citerefentry>
		<refentrytitle>drbdsetup</refentrytitle>
		<manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>down
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>down</secondary> </indexterm> Take a resource down by
	    removing all volumes, connections, and the resource itself.
	    See <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>dstate
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>dstate</secondary>
	    </indexterm> Show the current disk
	    state of a lower-level device.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>dump
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>dump</secondary>
	    </indexterm> Parse the configuration file and dump it to stdout.
	    This will fail if the configuration file is syntactically
	    incorrect.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>dump-md
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>dump-md</secondary>
	  </indexterm> Dump the metadata of a device in text form, including
	  the bitmap and activity log.  See <citerefentry>
	    <refentrytitle>drbdmeta</refentrytitle> <manvolnum>8</manvolnum>
	</citerefentry> for details.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>get-gi
	  <arg choice="req" rep="norepeat"><replaceable>peer_device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>get-gi</secondary>
	    </indexterm> Show the data generation identifiers for a device on a
	    particular connection.  Uses <option>drbdsetup</option> for
	    attached devices and <option>drbdmeta</option> for unattached
	    devices.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>hidden-commands
	</term>

        <listitem>
          <para>Shows all commands which are not explicitly documented.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>invalidate
	  <arg choice="req" rep="norepeat"><replaceable>peer_device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>invalidate</secondary> </indexterm> Replace the local
	    data of a device with that of a peer.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>invalidate-remote
	  <arg choice="req" rep="norepeat"><replaceable>peer_device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>invalidate-remote</secondary> </indexterm> Replace a
	    peer device's data of a resource with the local data.  See
	    <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>net-options
	  <arg choice="req" rep="norepeat"><replaceable>connection</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>
              <secondary>net-options</secondary>
	    </indexterm> Change the network options of an existing connection.
	    See <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>new-current-uuid
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>new-current-uuid</secondary> </indexterm> Generate a
	    new currend UUID.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>outdate
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
	  <para><indexterm significance="normal"> <primary>drbdadm</primary>

	      <secondary>outdate</secondary> </indexterm> Mark the data on a
	    lower-level device as outdated.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>pause-sync
	  <arg choice="req" rep="norepeat"><replaceable>peer_device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>pause-sync</secondary>
	    </indexterm> Stop resynchronizing between a local and a peer device
	    by setting the local pause flag.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>primary
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>primary</secondary> </indexterm> Change the role of a
	    node in a resource to primary.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>resize
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>resize</secondary> </indexterm> Resize the lower-level
	    devices of a replicated device on all nodes.  This combines the
	    <option>check-resize</option> and <option>resize</option>
	    lower-level commands; see <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>resource-options
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>resource-options</secondary>
	  </indexterm> Change the resource options of an existing
	  resource.  See <citerefentry>
	    <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>resume-sync
	  <arg choice="req" rep="norepeat"><replaceable>peer_device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>resume-sync</secondary> </indexterm> Allow
	    resynchronization to resume by clearing the local sync pause flag.
	    See <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>role
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>role</secondary>
	    </indexterm> Show the current role of a resource.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>secondary
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>secondary</secondary>
	    </indexterm> Change the role of a node in a resource to secondary.
	    This command fails if the replicated device is in use.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>show-gi
	  <arg choice="req" rep="norepeat"><replaceable>peer_device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>show-gi</secondary>
	    </indexterm> Show the data generation identifiers for a device on a
	    particular connection. In addition, explain the output.  See
	    <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>state
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>state</secondary>
	    </indexterm> This is an alias for <command
	    moreinfo="none">drbdsetup role</command>. Deprecated.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>up
	  <arg choice="req" rep="norepeat"><replaceable>resource</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>up</secondary>
	    </indexterm> Bring up a resource by applying the activity log of
	    all volumes, creating the resource, creating the replicated
	    devices, attaching the lower-level devices, and connecting to all
	    peers.  See the <option>apply-al</option> drbdmeta command and the
	    <option>new-resource</option>, <option>new-device</option>,
	    <option>new-minor</option>, <option>attach</option>, and
	    <option>connect</option> drbdsetup commands.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>verify
	  <arg choice="req" rep="norepeat"><replaceable>peer_device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

              <secondary>verify</secondary>
	    </indexterm> Start online verification, change which part of the
	    device will be verified, or stop online verification.  See
	    <citerefentry> <refentrytitle>drbdsetup</refentrytitle>
	      <manvolnum>8</manvolnum> </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>wait-connect
	  <group choice="req">
	    <arg><replaceable>device</replaceable></arg>
	    <arg><replaceable>connection</replaceable></arg>
	    <arg><replaceable>resource</replaceable></arg>
	  </group>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>wait-connect</secondary> </indexterm> Wait until a
	    device on a peer, all devices over a connection, or all devices on
	    all peers are visible. See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>


      <varlistentry>
        <term>wait-sync
	  <group choice="req">
	    <arg><replaceable>device</replaceable></arg>
	    <arg><replaceable>connection</replaceable></arg>
	    <arg><replaceable>resource</replaceable></arg>
	  </group>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>wait-sync</secondary> </indexterm> Wait until a
	    device is connected and has finished eventual resync operation. Also
	    available on connection and resource level.  See <citerefentry>
	      <refentrytitle>drbdsetup</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>wipe-md
	  <arg choice="req" rep="norepeat"><replaceable>device</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>wipe-md</secondary> </indexterm> Wipe out the DRBD
	    metadata of a device.  See <citerefentry>
	      <refentrytitle>drbdmeta</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>forget-peer
	  <arg choice="req" rep="norepeat"><replaceable>connection</replaceable></arg>
	</term>

        <listitem>
          <para><indexterm significance="normal">
              <primary>drbdadm</primary>

	      <secondary>forget-peer</secondary> </indexterm> Completely remove any
	      reference to a unconnected peer from meta-data.
	      See <citerefentry>
	      <refentrytitle>drbdmeta</refentrytitle> <manvolnum>8</manvolnum>
	    </citerefentry> for details.
	  </para>
        </listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>Version</title>

    <simpara>This document was revised for version 9.0.0 of the DRBD distribution.</simpara>
  </refsect1>

  <refsect1>
    <title>Author</title>

    <simpara>Written by Philipp Reisner <email>philipp.reisner@linbit.com</email> and Lars
    Ellenberg <email>lars.ellenberg@linbit.com</email></simpara>
  </refsect1>

  <refsect1>
    <title>Reporting Bugs</title>

    <simpara>Report bugs to <email>drbd-user@lists.linbit.com</email>.</simpara>
  </refsect1>

  <refsect1>
    <title>Copyright</title>

    <simpara>Copyright 2001-2012 LINBIT Information Technologies, Philipp Reisner, Lars Ellenberg.
    This is free software; see the source for copying conditions. There is NO warranty; not even
    for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</simpara>
  </refsect1>

  <refsect1>
    <title>See Also</title>

    <para><citerefentry>
        <refentrytitle>drbd.conf</refentrytitle>

        <manvolnum>5</manvolnum>
      </citerefentry>, <citerefentry>
        <refentrytitle>drbd</refentrytitle>

        <manvolnum>8</manvolnum>
      </citerefentry>, <citerefentry>
        <refentrytitle>drbddisk</refentrytitle>

        <manvolnum>8</manvolnum>
      </citerefentry>, <citerefentry>
        <refentrytitle>drbdsetup</refentrytitle>

        <manvolnum>8</manvolnum>
      </citerefentry>, <citerefentry>
        <refentrytitle>drbdmeta</refentrytitle>

        <manvolnum>8</manvolnum>
      </citerefentry> and the
      <ulink url="http://www.drbd.org/"><citetitle>DRBD project web site</citetitle></ulink></para>

  </refsect1>
</refentry>
