diff options
Diffstat (limited to 'Documentation/blockdev')
| -rw-r--r-- | Documentation/blockdev/drbd/data-structure-v9.txt | 38 | ||||
| -rw-r--r-- | Documentation/blockdev/floppy.txt | 6 | ||||
| -rw-r--r-- | Documentation/blockdev/ramdisk.txt | 21 | ||||
| -rw-r--r-- | Documentation/blockdev/zram.txt | 113 | 
4 files changed, 169 insertions, 9 deletions
diff --git a/Documentation/blockdev/drbd/data-structure-v9.txt b/Documentation/blockdev/drbd/data-structure-v9.txt new file mode 100644 index 00000000000..1e52a0e3262 --- /dev/null +++ b/Documentation/blockdev/drbd/data-structure-v9.txt @@ -0,0 +1,38 @@ +This describes the in kernel data structure for DRBD-9. Starting with +Linux v3.14 we are reorganizing DRBD to use this data structure. + +Basic Data Structure +==================== + +A node has a number of DRBD resources.  Each such resource has a number of +devices (aka volumes) and connections to other nodes ("peer nodes"). Each DRBD +device is represented by a block device locally. + +The DRBD objects are interconnected to form a matrix as depicted below; a +drbd_peer_device object sits at each intersection between a drbd_device and a +drbd_connection: + +  /--------------+---------------+.....+---------------\ +  |   resource   |    device     |     |    device     | +  +--------------+---------------+.....+---------------+ +  |  connection  |  peer_device  |     |  peer_device  | +  +--------------+---------------+.....+---------------+ +  :              :               :     :               : +  :              :               :     :               : +  +--------------+---------------+.....+---------------+ +  |  connection  |  peer_device  |     |  peer_device  | +  \--------------+---------------+.....+---------------/ + +In this table, horizontally, devices can be accessed from resources by their +volume number.  Likewise, peer_devices can be accessed from connections by +their volume number.  Objects in the vertical direction are connected by double +linked lists.  There are back pointers from peer_devices to their connections a +devices, and from connections and devices to their resource. + +All resources are in the drbd_resources double-linked list.  In addition, all +devices can be accessed by their minor device number via the drbd_devices idr. + +The drbd_resource, drbd_connection, and drbd_device objects are reference +counted.  The peer_device objects only serve to establish the links between +devices and connections; their lifetime is determined by the lifetime of the +device and connection which they reference. diff --git a/Documentation/blockdev/floppy.txt b/Documentation/blockdev/floppy.txt index 470fe4b5e37..e2240f5ab64 100644 --- a/Documentation/blockdev/floppy.txt +++ b/Documentation/blockdev/floppy.txt @@ -39,15 +39,15 @@ Module configuration options  ============================   If you use the floppy driver as a module, use the following syntax: -modprobe floppy <options> +modprobe floppy floppy="<options>"  Example: - modprobe floppy omnibook messages + modprobe floppy floppy="omnibook messages"   If you need certain options enabled every time you load the floppy driver,  you can put: - options floppy omnibook messages + options floppy floppy="omnibook messages"  in a configuration file in /etc/modprobe.d/. diff --git a/Documentation/blockdev/ramdisk.txt b/Documentation/blockdev/ramdisk.txt index fa72e97dd66..fe2ef978d85 100644 --- a/Documentation/blockdev/ramdisk.txt +++ b/Documentation/blockdev/ramdisk.txt @@ -36,21 +36,30 @@ allowing one to squeeze more programs onto an average installation or  rescue floppy disk. -2) Kernel Command Line Parameters +2) Parameters  --------------------------------- +2a) Kernel Command Line Parameters +  	ramdisk_size=N  	==============  This parameter tells the RAM disk driver to set up RAM disks of N k size.  The -default is 4096 (4 MB) (8192 (8 MB) on S390). +default is 4096 (4 MB). + +2b) Module parameters -	ramdisk_blocksize=N -	=================== +	rd_nr +	===== +	/dev/ramX devices created. -This parameter tells the RAM disk driver how many bytes to use per block.  The -default is 1024 (BLOCK_SIZE). +	max_part +	======== +	Maximum partition number. +	rd_size +	======= +	See ramdisk_size.  3) Using "rdev -r"  ------------------ diff --git a/Documentation/blockdev/zram.txt b/Documentation/blockdev/zram.txt new file mode 100644 index 00000000000..0595c3f56cc --- /dev/null +++ b/Documentation/blockdev/zram.txt @@ -0,0 +1,113 @@ +zram: Compressed RAM based block devices +---------------------------------------- + +* Introduction + +The zram module creates RAM based block devices named /dev/zram<id> +(<id> = 0, 1, ...). Pages written to these disks are compressed and stored +in memory itself. These disks allow very fast I/O and compression provides +good amounts of memory savings. Some of the usecases include /tmp storage, +use as swap disks, various caches under /var and maybe many more :) + +Statistics for individual zram devices are exported through sysfs nodes at +/sys/block/zram<id>/ + +* Usage + +Following shows a typical sequence of steps for using zram. + +1) Load Module: +	modprobe zram num_devices=4 +	This creates 4 devices: /dev/zram{0,1,2,3} +	(num_devices parameter is optional. Default: 1) + +2) Set max number of compression streams +	Compression backend may use up to max_comp_streams compression streams, +	thus allowing up to max_comp_streams concurrent compression operations. +	By default, compression backend uses single compression stream. + +	Examples: +	#show max compression streams number +	cat /sys/block/zram0/max_comp_streams + +	#set max compression streams number to 3 +	echo 3 > /sys/block/zram0/max_comp_streams + +Note: +In order to enable compression backend's multi stream support max_comp_streams +must be initially set to desired concurrency level before ZRAM device +initialisation. Once the device initialised as a single stream compression +backend (max_comp_streams equals to 1), you will see error if you try to change +the value of max_comp_streams because single stream compression backend +implemented as a special case by lock overhead issue and does not support +dynamic max_comp_streams. Only multi stream backend supports dynamic +max_comp_streams adjustment. + +3) Select compression algorithm +	Using comp_algorithm device attribute one can see available and +	currently selected (shown in square brackets) compression algortithms, +	change selected compression algorithm (once the device is initialised +	there is no way to change compression algorithm). + +	Examples: +	#show supported compression algorithms +	cat /sys/block/zram0/comp_algorithm +	lzo [lz4] + +	#select lzo compression algorithm +	echo lzo > /sys/block/zram0/comp_algorithm + +4) Set Disksize +        Set disk size by writing the value to sysfs node 'disksize'. +        The value can be either in bytes or you can use mem suffixes. +        Examples: +            # Initialize /dev/zram0 with 50MB disksize +            echo $((50*1024*1024)) > /sys/block/zram0/disksize + +            # Using mem suffixes +            echo 256K > /sys/block/zram0/disksize +            echo 512M > /sys/block/zram0/disksize +            echo 1G > /sys/block/zram0/disksize + +Note: +There is little point creating a zram of greater than twice the size of memory +since we expect a 2:1 compression ratio. Note that zram uses about 0.1% of the +size of the disk when not in use so a huge zram is wasteful. + +5) Activate: +	mkswap /dev/zram0 +	swapon /dev/zram0 + +	mkfs.ext4 /dev/zram1 +	mount /dev/zram1 /tmp + +6) Stats: +	Per-device statistics are exported as various nodes under +	/sys/block/zram<id>/ +		disksize +		num_reads +		num_writes +		failed_reads +		failed_writes +		invalid_io +		notify_free +		zero_pages +		orig_data_size +		compr_data_size +		mem_used_total + +7) Deactivate: +	swapoff /dev/zram0 +	umount /dev/zram1 + +8) Reset: +	Write any positive value to 'reset' sysfs node +	echo 1 > /sys/block/zram0/reset +	echo 1 > /sys/block/zram1/reset + +	This frees all the memory allocated for the given device and +	resets the disksize to zero. You must set the disksize again +	before reusing the device. + +Nitin Gupta +ngupta@vflare.org  | 
