<?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 May 2011</date>

    <productname>DRBD</productname>

    <productnumber>8.4.0</productnumber>
  </refentryinfo>

  <refmeta>
    <refentrytitle>drbdadm</refentrytitle>

    <manvolnum>8</manvolnum>

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

  <refnamediv>
    <refname>drbdadm</refname>

    <refpurpose>Administration tool for DRBD <indexterm significance="normal">
        <primary>drbdadm</primary>
      </indexterm></refpurpose>
  </refnamediv>

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

      <arg choice="opt" rep="norepeat">-d</arg>

      <arg choice="opt" rep="norepeat">-c<arg choice="req"
      rep="norepeat"><replaceable>file</replaceable></arg></arg>

      <arg choice="opt" rep="norepeat">-t<arg choice="req"
      rep="norepeat"><replaceable>file</replaceable></arg></arg>

      <arg choice="opt" rep="norepeat">-s<arg choice="req"
      rep="norepeat"><replaceable>cmd</replaceable></arg></arg>

      <arg choice="opt" rep="norepeat">-m<arg choice="req"
      rep="norepeat"><replaceable>cmd</replaceable></arg></arg>

      <arg choice="opt" rep="norepeat">-S</arg>

      <arg choice="opt" rep="norepeat">-h<arg choice="req"
      rep="norepeat"><replaceable>host</replaceable></arg></arg>

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

      <arg choice="req" rep="norepeat"><replaceable>command</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&gt;</arg></replaceable></arg>
      </group>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><option>Drbdadm</option> is the high level tool of the DRBD program suite.
    <option>Drbdadm</option> is to <option>drbdsetup</option> and <option>drbdmeta</option> what
    <option>ifup</option>/<option>ifdown</option> is to <option>ifconfig</option>.
    <option>Drbdadm</option> reads its configuration file and performs the specified commands by
    calling the <option>drbdsetup</option> and/or the <option>drbdmeta</option> program.</para>

    <para><option>Drbdadm</option> can operate on whole resources or on individual volumes in a
    resource. The sub commands: <option>attach</option>, <option>detach</option>,
    <option>primary</option>, <option>secondary</option>, <option>invalidate</option>,
    <option>invalidate-remote</option>, <option>outdate</option>, <option>resize</option>,
    <option>verify</option>, <option>pause-sync</option>, <option>resume-sync</option>,
    <option>role</option>, <option>csytate</option>, <option>dstate</option>,
    <option>create-md</option>, <option>show-gi</option>, <option>get-gi</option>,
    <option>dump-md</option>, <option>wipe-md</option> work on whole resources and on
    individual volumes. </para>

    <para>Resource level only commands are: <option>connect</option>, <option>disconnect</option>,
    <option>up</option>, <option>down</option>, <option>wait-connect</option> and
    <option>dump</option>.</para>
  </refsect1>

  <refsect1>
    <title>Options</title>

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

        <listitem>
          <para>Just prints the calls of <option>drbdsetup</option> to stdout, but does not run
          the commands.</para>
        </listitem>
      </varlistentry>

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

        <listitem>
          <para>Specifies the configuration file drbdadm will use. If this parameter is not
          specified, drbdadm will look for <option>/etc/drbd-84.conf</option>,
          <option>/etc/drbd-83.conf</option>, <option>/etc/drbd-08.conf</option> and
          <option>/etc/drbd.conf</option>.</para>
        </listitem>
      </varlistentry>

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

        <listitem>
          <para>Specifies an additional configuration file drbdadm to check. 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>Specifies that this command should be performed on a stacked resource.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-P</option>, <option>--peer</option></term>

        <listitem>
          <para>Specifies to which peer node to connect. Only necessary if there are more than two
          host sections in the resource you are working on.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>--</option> <replaceable>backend-options</replaceable></term>

        <listitem>
          <para>All options following the doubly hyphen are considered
          <replaceable>backend-options</replaceable>. These are passed through to the backend
          command. I.e. to <option>drbdsetup</option>, <option>drbdmeta</option> or
          <option>drbd-proxy-ctl</option>.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Commands</title>

    <variablelist>
      <varlistentry>
        <term>attach</term>

        <listitem>
          <para>Attaches a local backing block device to the DRBD resource's device.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>detach</term>

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

              <secondary>detach</secondary>
            </indexterm> Removes the backing storage device from a DRBD resource's device.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>connect</term>

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

              <secondary>connect</secondary>
            </indexterm> Sets up the network configuration of the resource's device. If the peer
          device is already configured, the two DRBD devices will connect. If there are more than
          two host sections in the resource you need to use the <option>--peer</option> option to
          select the peer you want to connect to.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>disconnect</term>

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

              <secondary>disconnect</secondary>
            </indexterm> Removes the network configuration from the resource. The device will then
          go into StandAlone state.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>syncer</term>

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

              <secondary>syncer</secondary>
            </indexterm> Loads the resynchronization parameters into the device.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>up</term>

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

              <secondary>up</secondary>
            </indexterm> Is a shortcut for attach and connect.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>down</term>

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

              <secondary>down</secondary>
            </indexterm> Is a shortcut for disconnect and detach.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>primary</term>

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

              <secondary>primary</secondary>
            </indexterm> Promote the resource's device into primary role. You need to do this
          before any access to the device, such as creating or mounting a file system.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>secondary</term>

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

              <secondary>secondary</secondary>
            </indexterm> Brings the device back into secondary role. This is needed since in a
          connected DRBD device pair, only one of the two peers may have primary role (except if
          <option>allow-two-primaries</option> is explicitly set in the configuration
          file).</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>invalidate</term>

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

              <secondary>invalidate</secondary>
            </indexterm> Forces DRBD to consider the data on the <emphasis>local</emphasis> backing
	  storage device as out-of-sync. Therefore DRBD will copy each
	  and every block from its peer, to bring the local storage
	  device back in sync.
	  To avoid races, you need an established replication link,
	  or be disconnected Secondary.
        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>invalidate-remote</term>

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

              <secondary>invalidate-remote</secondary>
            </indexterm> This command is similar to the invalidate command, however, the
	  <emphasis>peer's</emphasis> backing storage is invalidated and hence rewritten
	  with the data of the local node.
	  To avoid races, you need an established replication link,
	  or be disconnected Primary.
        </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>resize</term>

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

              <secondary>resize</secondary>
            </indexterm> Causes DRBD to re-examine all sizing constraints, and resize the
          resource's device accordingly. For example, if you increased the size of your backing
          storage devices (on both nodes, of course), then DRBD will adopt the new size after you
          called this command on one of your nodes. Since new storage space must be synchronised
          this command only works if there is at least one primary node present.</para>

	  <para>The <option>--size</option> option can be used to online shrink the usable
	  size of a drbd device. It's the users responsibility to make sure that a file system
	  on the device is not truncated by that operation.</para>

          <para>The <option>--assume-peer-has-space</option> allows you to resize a device which
          is currently not connected to the peer. Use with care, since if you do not resize the
          peer's disk as well, further connect attempts of the two will fail.</para>

	  <para>The <option>--assume-clean</option> allows you to resize an existing device and avoid
          syncing the new space. This is useful when adding addtional blank storage to your device.
          Example:
          <programlisting format="linespecific">
# drbdadm -- --assume-clean resize r0</programlisting>
          </para>
	  <para>The options <option>--al-stripes</option> and <option>--al-stripe-size-kB</option> may
	  be used to change the layout of the activity log online. In case of internal meta data
	  this may invovle shrinking the user visible size at the same time (unsing the
	  <option>--size</option>) or increasing the avalable space on the backing devices.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>check-resize</term>

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

              <secondary>check-resize</secondary>
            </indexterm> Calls 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>
      </varlistentry>

      <varlistentry>
        <term>create-md</term>

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

              <secondary>create-md</secondary>
            </indexterm> Initializes the meta data storage. This needs to be done before a DRBD
          resource can be taken online for the first time. In case of issues with that command
          have a look at <citerefentry>
              <refentrytitle>drbdmeta</refentrytitle>

              <manvolnum>8</manvolnum>
            </citerefentry></para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>get-gi</term>

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

              <secondary>get-gi</secondary>
            </indexterm> Shows a short textual representation of the data generation
          identifiers.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>show-gi</term>

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

              <secondary>show-gi</secondary>
            </indexterm> Prints a textual representation of the data generation identifiers
          including explanatory information.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>dump-md</term>

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

              <secondary>dump-md</secondary>
            </indexterm> Dumps the whole contents of the meta data storage, including the stored
          bit-map and activity-log, in a textual representation.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>outdate</term>

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

              <secondary>outdate</secondary>
            </indexterm> Sets the outdated flag in the meta data.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>adjust</term>

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

              <secondary>adjust</secondary>
            </indexterm> Synchronizes the configuration of the device with your configuration
          file. You should always examine the output of the dry-run mode before actually executing
          this command.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>wait-connect</term>

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

              <secondary>wait-connect</secondary>
            </indexterm> Waits until the device is connected to its peer device.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>role</term>

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

              <secondary>role</secondary>
            </indexterm> Shows the current roles of the devices (local/peer). E.g.
          Primary/Secondary</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>state</term>

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

              <secondary>state</secondary>
            </indexterm> Deprecated alias for "role", see above.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>cstate</term>

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

              <secondary>cstate</secondary>
            </indexterm> Shows the current connection state of the devices.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>dump</term>

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

              <secondary>dump</secondary>
            </indexterm> Just parse the configuration file and dump it to stdout. May be used to
          check the configuration file for syntactic correctness.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>outdate</term>

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

              <secondary>outdate</secondary>
            </indexterm> Used to mark the node's data as outdated. Usually used by the peer's
          fence-peer handler.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>verify</term>

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

              <secondary>verify</secondary>
            </indexterm> Starts online verify. During online verify, data on both nodes is
          compared for equality. See <filename moreinfo="none">/proc/drbd</filename> for online
          verify progress. If out-of-sync blocks are found, they are <emphasis>not</emphasis>
          resynchronized automatically. To do that, <command moreinfo="none">disconnect</command>
          and <command moreinfo="none">connect</command> the resource when verification has
          completed.</para>

          <para>See also the notes on data integrity on the drbd.conf manpage.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>pause-sync</term>

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

              <secondary>pause-sync</secondary>
            </indexterm> Temporarily suspend an ongoing resynchronization by setting the local
          pause flag. Resync only progresses if neither the local nor the remote pause flag is
          set. It might be desirable to postpone DRBD's resynchronization until after any
          resynchronization of the backing storage's RAID setup.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>resume-sync</term>

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

              <secondary>resume-sync</secondary>
            </indexterm> Unset the local sync pause flag.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>new-current-uuid</term>

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

              <secondary>new-current-uuid</secondary>
            </indexterm> Generates a new currend UUID and rotates all other UUID values.</para>

          <para>This can be used to shorten the initial resync of a cluster. See the
          <option>drbdsetup</option> manpage for a more details.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term>dstate</term>

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

              <secondary>dstate</secondary>
            </indexterm> Show the current state of the backing storage devices.
          (local/peer)</para>
        </listitem>
      </varlistentry>

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

        <listitem>
          <para>Shows all commands undocumented on purpose.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Version</title>

    <simpara>This document was revised for version 8.4.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-2011 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>
