OpenVZ Forum - RDF feed
type: channel
items: Subject: [PATCH 0/2] dm-ioband: I/O bandwidth controller v1.3.0: Introduction
items: Subject: [PATCH 1/2] dm-ioband: I/O bandwidth controller v1.3.0: Source code and patch
items: Subject: [PATCH 2/2] dm-ioband: I/O bandwidth controller v1.3.0: Document

Subject: [PATCH 0/2] dm-ioband: I/O bandwidth controller v1.3.0: Introduction
type: item
description: Hi everyone, This is the dm-ioband version 1.3.0 release. Dm-ioband is an I/O bandwidth controller implemented as a device-mapper driver, which gives specified bandwidth to each job running on the same physical device. - Can be applied to the kernel 2.6.26-rc5-mm3. - Changes from 1.2.0 (posted on Jul 4, 2008): - I/O smoothing take #2 This feature makes I/O requests of each group issued smoothly. Once a certain group has used up its tokens, all I/O requests to the group will be blocked until all the other groups used up theirs. This feature is to minimize this blocking time and to issue I/O requests at a constant rate according to the weight, without decreasing throughput. We have tested various ideas to achieve this feature and we have chosen the most effective ways as follows: - Shorten the epoch period of dm-ioband, each of which every ioband group will get new tokens. On the other hand, the leftover tokens for the past few epochs can be taken over to the next epoch so that it can keep the fairness between the groups even when the I/O loads of some groups are changing. - Make a new epoch immediately when a group with large weight used up its tokens even though there remain a lot of in-flight I/Os. To gain the throughput, dm-ioband will recharge tokens to all the groups without waiting their I/O completion if possible. - Make the I/O requests which user process have just made be handled ahead of the blocked I/O requests, since it would make sense that you assume the groups which issued these blocked I/O requests will have small weights. - Make the number of I/O requests which can be queued in dm-ioband smaller, so it will prevents all the I/O request of each group from being issued at the same time when a new epoch gets made. - TODO - Implementing cgroup support for dm-ioband is in progress. This feature makes it be able to handle asynchronous I/O requests properly. I added a new benchmark result on the dm-ioband webpage. This result shows that dm-ioband can contro…
creator: Ryo Tsuruta
date: 2008-07-11T11:14:11-00:00

Subject: [PATCH 1/2] dm-ioband: I/O bandwidth controller v1.3.0: Source code and patch
type: item
description: Here is the patch of dm-ioband. Based on 2.6.26-rc5-mm3 Signed-off-by: Ryo Tsuruta <ryov@valinux.co.jp> Signed-off-by: Hirokazu Takahashi <taka@valinux.co.jp> diff -uprN linux-2.6.26-rc5-mm3.orig/drivers/md/Kconfig linux-2.6.26-rc5-mm3/drivers/md/Kconfig --- linux-2.6.26-rc5-mm3.orig/drivers/md/Kconfig 2008-06-25 15:58:50.000000000 +0900 +++ linux-2.6.26-rc5-mm3/drivers/md/Kconfig 2008-07-11 19:24:05.000000000 +0900 @@ -271,4 +271,17 @@ config DM_UEVENT ---help--- Generate udev events for DM events. +config DM_IOBAND + tristate "I/O bandwidth control (EXPERIMENTAL)" + depends on BLK_DEV_DM && EXPERIMENTAL + ---help--- + This device-mapper target allows to define how the + available bandwidth of a storage device should be + shared between processes, cgroups, the partitions or the LUNs. + + Information on how to use dm-ioband is available in: + <file:Documentation/device-mapper/ioband.txt>. + + If unsure, say N. + endif # MD diff -uprN linux-2.6.26-rc5-mm3.orig/drivers/md/Makefile linux-2.6.26-rc5-mm3/drivers/md/Makefile --- linux-2.6.26-rc5-mm3.orig/drivers/md/Makefile 2008-06-25 15:58:50.000000000 +0900 +++ linux-2.6.26-rc5-mm3/drivers/md/Makefile 2008-07-11 19:24:05.000000000 +0900 @@ -7,6 +7,7 @@ dm-mod-objs := dm.o dm-table.o dm-target dm-multipath-objs := dm-path-selector.o dm-mpath.o dm-snapshot-objs := dm-snap.o dm-exception-store.o dm-mirror-objs := dm-raid1.o +dm-ioband-objs := dm-ioband-ctl.o dm-ioband-policy.o dm-ioband-type.o md-mod-objs := md.o bitmap.o raid456-objs := raid5.o raid6algos.o raid6recov.o raid6tables.o \ raid6int1.o raid6int2.o raid6int4.o \ @@ -36,6 +37,7 @@ obj-$(CONFIG_DM_MULTIPATH) += dm-multipa obj-$(CONFIG_DM_SNAPSHOT) += dm-snapshot.o obj-$(CONFIG_DM_MIRROR) += dm-mirror.o dm-log.o obj-$(CONFIG_DM_ZERO) += dm-zero.o +obj-$(CONFIG_DM_IOBAND) += dm-ioband.o quiet_cmd_unroll = UNROLL $@ cmd_unroll = $(PERL) $(srctree)/$(src)/unroll.pl $(UNROLL) \ diff -uprN linux-2.6.26-rc5-mm3.orig/drivers/md/dm-ioband-ctl.c linux-2.6.26-rc5-mm3/driver…
creator: Ryo Tsuruta
date: 2008-07-11T11:15:50-00:00

Subject: [PATCH 2/2] dm-ioband: I/O bandwidth controller v1.3.0: Document
type: item
description: Here is the document of dm-ioband. Based on 2.6.26-rc5-mm3 Signed-off-by: Ryo Tsuruta <ryov@valinux.co.jp> Signed-off-by: Hirokazu Takahashi <taka@valinux.co.jp> diff -uprN linux-2.6.26-rc5-mm3.orig/Documentation/device-mapper/ioband.txt linux-2.6.26-rc5-mm3/Documentation/device-mapper/ioband.txt --- linux-2.6.26-rc5-mm3.orig/Documentation/device-mapper/ioband.txt 1970-01-01 09:00:00.000000000 +0900 +++ linux-2.6.26-rc5-mm3/Documentation/device-mapper/ioband.txt 2008-07-11 19:24:05.000000000 +0900 @@ -0,0 +1,933 @@ + Block I/O bandwidth control: dm-ioband + + ------------------------------------------------------- + + Table of Contents + + [1]What's dm-ioband all about? + + [2]Differences from the CFQ I/O scheduler + + [3]How dm-ioband works. + + [4]Setup and Installation + + [5]Getting started + + [6]Command Reference + + [7]Examples + +What's dm-ioband all about? + + dm-ioband is an I/O bandwidth controller implemented as a device-mapper + driver. Several jobs using the same physical device have to share the + bandwidth of the device. dm-ioband gives bandwidth to each job according + to its weight, which each job can set its own value to. + + At this time, a job is a group of processes with the same pid or pgrp or + uid. There is also a plan to make it support cgroup. A job can also be a + virtual machine such as KVM or Xen. + + +------+ +------+ +------+ +------+ +------+ +------+ + |cgroup| |cgroup| | the | | pid | | pid | | the | jobs + | A | | B | |others| | X | | Y | |others| + +--|---+ +--|---+ +--|---+ +--|---+ +--|---+ +--|---+ + +--V----+---V---+----V---+ +--V----+---V---+----V---+ + | group | group | default| | group | group | default| ioband groups + | | | group | | | | group | + +-------+-------+--------+ +-------+-------+--------+ + | ioband1 | | ioband2 | ioband devices + +-----------|------------+ +-----------|------------+ + +-----------V--------------+-------------V------------+ + | | | + | sdb1 | sdb2 | physical devices + +-----------------------…
creator: Ryo Tsuruta
date: 2008-07-11T11:16:29-00:00