blob: 84f274f8b56e7788252227edf113acb97aab77c7 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<refentry id="re-drbdmeta">
<refentryinfo>
<date>6 December 2012</date>
<productname>DRBD</productname>
<productnumber>9.0.0</productnumber>
</refentryinfo>
<refmeta>
<refentrytitle>drbdmeta</refentrytitle>
<manvolnum>8</manvolnum>
<refmiscinfo class="manual">System Administration</refmiscinfo>
</refmeta>
<refnamediv>
<refname>drbdmeta</refname>
<refpurpose>Manipulate the DRBD on-disk metadata<indexterm significance="normal">
<primary>drbdmeta</primary>
</indexterm>
</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis sepchar=" ">
<command moreinfo="none">drbdmeta</command>
<arg choice="opt" rep="norepeat">--force</arg>
<arg choice="opt" rep="norepeat">--ignore-sanity-checks</arg>
<arg choice="req" rep="norepeat">
<replaceable>device</replaceable>
</arg>
<group choice="req" rep="norepeat">
<arg choice="plain" rep="norepeat">v06 <replaceable>minor</replaceable></arg>
<arg choice="plain" rep="norepeat">v07 <replaceable>meta_dev index</replaceable></arg>
<arg choice="plain" rep="norepeat">v08 <replaceable>meta_dev index</replaceable></arg>
<arg choice="plain" rep="norepeat">v09 <replaceable>meta_dev index</replaceable></arg>
</group>
<arg choice="req" rep="norepeat">
<replaceable>command</replaceable>
</arg>
<arg choice="opt" rep="repeat">
<replaceable>cmd args</replaceable>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>The <option>drbdmeta</option> utility is used for creating,
displaying, and modifying DRBD's on-disk metadata. Users usually
interact with the <option>drbdadm</option> utility, which provides a more
high-level interface to DRBD than <option>drbdmeta</option>. (See
<option>drbdadm</option>'s <option>--dry-run</option> option to see how
<option>drbdadm</option> uses <option>drbdmeta</option>.)</para>
<para>This utility can only be used on devices which are not currently in
use by the kernel.</para>
<para>The first argument (<replaceable>device</replaceable>) specifies the
drbd device associated with a volume, or <quote>-</quote> if no device is
associated with that volume. If the drbd device is specified, the
<option>drbdmeta</option> utility makes sure that the drbd device does
not currently have a volume attached to prevent meta-data of an active
volume from being destroyed.</para>
<para>The second argument specifies the
metadata version to use (v06, v07, v08, v09). In most metadata versions,
the third argument (<replaceable>meta_dev</replaceable>) specifies the
device which contains the metadata; this argument can be the same as
<replaceable>device</replaceable>. The fourth argument
(<replaceable>index</replaceable>) can be one of the keywords
<option>internal</option> (for internal metadata),
<option>flex-internal</option> (in v07 for variable-sized metadata; v07
otherwise defaults to fixed-size internal metadata),
<option>flex-external</option> (for variable-sized external metadata), or
a numeric matadata index (for fixed-size external metadata). See the
<option>meta-disk</option> parameter in <citerefentry>
<refentrytitle>drbd.conf</refentrytitle> <manvolnum>5</manvolnum>
</citerefentry>.</para>
</refsect1>
<refsect1>
<title>Options</title>
<variablelist>
<varlistentry>
<term>--force</term>
<listitem>
<para><indexterm significance="normal"><primary>drbdmeta</primary><secondary>--force</secondary></indexterm>
Assume yes as the answer to all questions drbdmeta would ask.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>--ignore-sanity-checks</term>
<listitem>
<para><indexterm significance="normal"><primary>drbdmeta</primary><secondary>--ignore-sanity-checks</secondary></indexterm>
Normally, <option>drbdmeta</option> performs some sanity checks
before writing to the metadata device: for example, if the device
appears to contain a file system, it refuses to destroy the file
system by writing into it. Use this option to ignore these
checks.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Commands</title>
<variablelist>
<varlistentry>
<term><option>create-md</option>
<arg choice="opt" rep="norepeat"><option>--peer-max-bio-size=</option><replaceable>val</replaceable></arg> (metadata versions v06, v07, and v08)</term>
<term><option>create-md</option>
<arg choice="req" rep="norepeat">number-of-bitmap-slots</arg>
<arg choice="opt" rep="norepeat"><option>--peer-max-bio-size=</option><replaceable>val</replaceable></arg>
<arg choice="opt" rep="norepeat"><option>--al-stripes=</option><replaceable>val</replaceable></arg>
<arg choice="opt" rep="norepeat"><option>--al-stripe-size-kB=</option><replaceable>val</replaceable></arg> (metadata version v09)</term>
<listitem>
<para><indexterm
significance="normal"><primary>drbdmeta</primary><secondary>create-md</secondary></indexterm>
Initialize the metadata. This is necessary before a DRBD resource
can be attached. If <option>drbdmeta</option> finds an older
version of DRBD metadata on the device, it asks if the format
should be converted.</para>
<para>When <option>drbdadm</option> calls <option>drbdmeta</option>'s
<option>create-md</option> command for a device, it sets the
<replaceable>number-of-bitmap-slots</replaceable> argument to the
number of peers in the resource. To reserve additional bitmap
slots (which allows to add more peers in the future), call
<option>drbdmeta</option> directly instead.</para>
<para>When a device is used before being connected to its peers the
first time, DRBD assumes that peers can only handle 4 KiB requests
by default. The <option>--peer-max-bio-size</option> option allows
to set more optimistic values; use this if the versions of DRBD
that this device will connect to are known. DRBD supports a
maximum bio size of 32 KiB since version 8.3.8, of 128 KiB since
version 8.3.9, and of 1 MiB since version 8.4.0.</para>
<para>
If you want to use more than 6433 activity log extents, or live on
top of a spriped RAID, you may specify the number of stripes
(<option>--al-stripes</option>, default 1), and the stripe size
(<option>--al-stripe-size-kB</option>, default 32).
To just use a larger linear on-disk ring-buffer, leave
the number of stripes at 1, and increase the size only:
<?linebreak?>
<command>drbdmeta 0 v08 /dev/vg23/lv42 internal create-md --al-stripe-size 1M</command>
</para>
<para>
To avoid a single "spindle" from becoming a bottleneck,
increase the number of stripes, to achieve an interleaved layout
of the on-disk activity-log transactions.
What you give as "stripe-size" should be what is a.k.a. "chunk size"
or "granularity" or "strip unit": the minimum skip to the next
"spindle".
<?linebreak?>
<command>drbdmeta 0 v08 /dev/vg23/lv42 internal create-md --al-stripes 7 --al-stripe-size 64</command>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>get-gi</option>
<arg rep="norepeat"><option>--node-id=</option><replaceable>id</replaceable></arg>
</term>
<listitem>
<para><indexterm
significance="normal"><primary>drbdmeta</primary><secondary>get-gi</secondary></indexterm>
Show the data generation identifiers for a device on a particular
connection. DRBD version 9.0.0 and beyond support multiple peers;
use the <replaceable>node-id</replaceable> option to define which
peer's data generation identifiers to show.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>show-gi</option>
<arg rep="norepeat"><option>--node-id=</option><replaceable>id</replaceable></arg>
</term>
<listitem>
<para><indexterm significance="normal"><primary>drbdmeta</primary><secondary>show-gi</secondary></indexterm>
Similar to <option>get-gi</option>, but with explanatory information.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>dump-md</option></term>
<listitem>
<para><indexterm
significance="normal"><primary>drbdmeta</primary><secondary>dump-md</secondary></indexterm>
Dump the metadata of a device in text form, including the bitmap
and activity log.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>outdate</option></term>
<listitem>
<para>
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><option>dstate</option></term>
<listitem>
<para>
Show the current disk state of a lower-level device.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>check-resize</option></term>
<listitem>
<para><indexterm significance="normal"><primary>drbdmeta</primary><secondary>check-resize</secondary></indexterm>
Examine the device size of a lower-level device and its last known device size
(saved in <option>/var/lib/drbd/drbd-minor-<replaceable>minor</replaceable>.lkbd</option>
by <option>drbdsetup check-resize</option>). For internal metadata,
if the size of the lower-level device has changed and the metadata
can be found at the previous position, move the metadata to the new
position at the end of the block device.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>apply-al</option></term>
<listitem>
<para><indexterm significance="normal"><primary>drbdmeta</primary><secondary>apply-al</secondary></indexterm>
Apply the activity log of the specified device. This is necessary
before the device can be attached by the kernel again.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Expert commands</title>
<para>The <option>drbdmeta</option> utility can be used to fine tune
metdata. Please note that this can lead to destroyed metadata or even
silent data corruption; use with great care only.
</para>
<variablelist>
<varlistentry>
<term><option>set-gi</option> <replaceable>gi</replaceable>
<arg rep="norepeat"><option>--node-id=</option><replaceable>id</replaceable></arg>
</term>
<listitem>
<para><indexterm significance="normal"><primary>drbdmeta</primary><secondary>set-gi </secondary></indexterm>
Set the generation identifiers. The <replaceable>gi</replaceable>
argument is a generation counter for the v06 and v07 formats, and a
set of UUIDs for v08 and beyond. Accepts the same syntax as in the
<option>get-gi</option> output. DRBD version 9.0.0 and beyond
support multiple peers; use the <replaceable>--node-id</replaceable>
option to define which peer's data generation identifiers to set.
<!-- FIXME: only the bitmap value taken? or current overwritten, too? -->
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>restore-md</option> <replaceable>dump_file</replaceable></term>
<listitem>
<para><indexterm significance="normal"><primary>drbdmeta</primary><secondary>restore-md </secondary></indexterm>
Replace the metadata on the device with the contents of
<replaceable>dump_file</replaceable>. The dump file format is
defined by the output of the <option>dump-md</option> command.
</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-2008,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>drbdadm</refentrytitle>
<manvolnum>8</manvolnum>
</citerefentry>
<citerefentry>
<refentrytitle>drbd.conf</refentrytitle>
<manvolnum>5</manvolnum>
</citerefentry>
</para>
</refsect1>
</refentry>