man.bsd.lv manual page server

Manual Page Search Parameters

MD(4) Device Drivers Manual MD(4)

mdmemory disk

To compile this driver into the kernel, place the following line in your kernel configuration file:

device md

Alternatively, to load the driver as a module at boot time, place the following line in /boot/loader.conf:

md_load="YES"

To specify the default maximum size of kmalloc(9) backed disks:
options MD_NSECT=20000

The md driver provides support for two kinds of memory backed virtual disks: kmalloc(9) backed and pre-loaded module backed.

The kmalloc(9) backed disks are severely limited in size by constraints imposed by kmalloc(9). Specifically, only one malloc bucket is used, which means that all md devices with kmalloc(9) backing must share the malloc per-bucket quota. The exact size of this quota varies, in particular with the amount of RAM in the system. The exact value can be determined with vmstat(8).

A sector filled with identical bytes does not consume storage, and therefore the storage allocated by a md disk can be freed with a command such as this:

dd if=/dev/zero of=/dev/md567

The default maximum size of a md disk backed by kmalloc(9) is 20,000 sectors of 512 bytes each. This can be changed with the kernel option MD_NSECT.

At boot time the md driver will search for pre-loaded modules of type ‘md_image’ and instantiate a md device for each of these modules. The type ‘mfs_root’ is also allowed for backward compatibility. These devices are backed by the RAM reserved by the loader(8), and as such not limited by the kmalloc(9) size constraints. However, this also means that the storage cannot be released. For the same reason, the “identical byte” detection is not applicable.

The md driver uses the “almost-clone” convention, whereby opening device number N creates device instance number N+1.

The vmstat(8) utility can be used to monitor memory usage by kmalloc(9) backed md disks, but not those backed by pre-loaded modules.

To mount a kmalloc(9) backed md device on /tmp:

if [ -e /dev/md0 ]; then
	newfs /dev/md0 && \
	mount /dev/md0 /tmp && \
	chmod 1777 /tmp
fi

disklabel(5), disklabel(8), fdisk(8), loader(8), newfs(8), vmstat(8)

The md driver first appeared in FreeBSD 4.0 as a cleaner replacement for the MFS functionality previously used in PicoBSD and in the FreeBSD installation process.

The md driver was written by Poul-Henning Kamp <phk@FreeBSD.org>.

September 28, 2009 DragonFly-5.6.1