All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhi Yong Wu <zwu.kernel@gmail.com>
To: Stefan Behrens <sbehrens@giantdisaster.de>
Cc: linux-btrfs@vger.kernel.org, sekharan@us.ibm.com,
	chris.mason@fusionio.com, Ilya Dryomov <idryomov@gmail.com>,
	Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Subject: Re: [RFC 0/5] BTRFS hot relocation support
Date: Thu, 9 May 2013 14:42:57 +0800	[thread overview]
Message-ID: <CAEH94LiBzA0SEg+TKRs8_MP43UEDq6ULU2WfjYmAMhneHRZKpw@mail.gmail.com> (raw)
In-Reply-To: <518B4274.3020000@giantdisaster.de>

btrfs maintainer's opinion is very important, i guess.

On Thu, May 9, 2013 at 2:30 PM, Stefan Behrens
<sbehrens@giantdisaster.de> wrote:
> On 05/09/2013 01:13, Zhi Yong Wu wrote:
>>
>> HI, all
>>
>>     I saw that bcache will be merged into kernel upstream soon, so i
>> want to know if btrfs hot relocation support is still meanful, if no,
>> i will not continue to work on it. can anyone let me know this?
>> thanks.
>
>
> Which one is better?
>
> Please do some measurements. Select typical file system use cases, and
> publish and compare the measurement results of the two approaches.
>
>
>
>> On Mon, May 6, 2013 at 4:53 PM,  <zwu.kernel@gmail.com> wrote:
>>>
>>> From: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
>>>
>>>    The patchset as RFC is sent out mainly to see if it goes in the
>>> correct development direction.
>>>
>>>    The patchset is trying to introduce hot relocation support
>>> for BTRFS. In hybrid storage environment, when the data in
>>> HDD disk get hot, it can be relocated to SSD disk by BTRFS
>>> hot relocation support automatically; also, if SSD disk ratio
>>> exceed its upper threshold, the data which get cold can be
>>> looked up and relocated to HDD disk to make more space in SSD
>>> disk at first, and then the data which get hot will be relocated
>>> to SSD disk automatically.
>>>
>>>    BTRFS hot relocation mainly reserve block space from SSD disk
>>> at first, load the hot data to page cache from HDD, allocate
>>> block space from SSD disk, and finally write the data to SSD disk.
>>>
>>>    If you'd like to play with it, pls pull the patchset from
>>> my git on github:
>>>    https://github.com/wuzhy/kernel.git hot_reloc
>>>
>>> For how to use, please refer too the example below:
>>>
>>> root@debian-i386:~# echo 0 > /sys/block/vdc/queue/rotational
>>> ^^^ Above command will hack /dev/vdc to be one SSD disk
>>> root@debian-i386:~# echo 999999 > /proc/sys/fs/hot-age-interval
>>> root@debian-i386:~# echo 10 > /proc/sys/fs/hot-update-interval
>>> root@debian-i386:~# echo 10 > /proc/sys/fs/hot-reloc-interval
>>> root@debian-i386:~# mkfs.btrfs -d single -m single -h /dev/vdb /dev/vdc
>>> -f
>>>
>>> WARNING! - Btrfs v0.20-rc1-254-gb0136aa-dirty IS EXPERIMENTAL
>>> WARNING! - see http://btrfs.wiki.kernel.org before using
>>>
>>> [ 140.279011] device fsid c563a6dc-f192-41a9-9fe1-5a3aa01f5e4c devid 1
>>> transid 16 /dev/vdb
>>> [ 140.283650] device fsid c563a6dc-f192-41a9-9fe1-5a3aa01f5e4c devid 2
>>> transid 16 /dev/vdc
>>> [ 140.517089] device fsid 197d47a7-b9cd-46a8-9360-eb087b119424 devid 1
>>> transid 3 /dev/vdb
>>> [ 140.550759] device fsid 197d47a7-b9cd-46a8-9360-eb087b119424 devid 1
>>> transid 3 /dev/vdb
>>> [ 140.552473] device fsid c563a6dc-f192-41a9-9fe1-5a3aa01f5e4c devid 2
>>> transid 16 /dev/vdc
>>> adding device /dev/vdc id 2
>>> [ 140.636215] device fsid 197d47a7-b9cd-46a8-9360-eb087b119424 devid 2
>>> transid 3 /dev/vdc
>>> fs created label (null) on /dev/vdb
>>> nodesize 4096 leafsize 4096 sectorsize 4096 size 14.65GB
>>> Btrfs v0.20-rc1-254-gb0136aa-dirty
>>> root@debian-i386:~# mount -o hot_move /dev/vdb /data2
>>> [ 144.855471] device fsid 197d47a7-b9cd-46a8-9360-eb087b119424 devid 1
>>> transid 6 /dev/vdb
>>> [ 144.870444] btrfs: disk space caching is enabled
>>> [ 144.904214] VFS: Turning on hot data tracking
>>> root@debian-i386:~# dd if=/dev/zero of=/data2/test1 bs=1M count=2048
>>> 2048+0 records in
>>> 2048+0 records out
>>> 2147483648 bytes (2.1 GB) copied, 23.4948 s, 91.4 MB/s
>>> root@debian-i386:~# df -h
>>> Filesystem Size Used Avail Use% Mounted on
>>> /dev/vda1 16G 13G 2.2G 86% /
>>> tmpfs 4.8G 0 4.8G 0% /lib/init/rw
>>> udev 10M 176K 9.9M 2% /dev
>>> tmpfs 4.8G 0 4.8G 0% /dev/shm
>>> /dev/vdb 15G 2.0G 13G 14% /data2
>>> root@debian-i386:~# btrfs fi df /data2
>>> Data: total=3.01GB, used=2.00GB
>>> System: total=4.00MB, used=4.00KB
>>> Metadata: total=8.00MB, used=2.19MB
>>> Data_SSD: total=8.00MB, used=0.00
>>> root@debian-i386:~# echo 108 > /proc/sys/fs/hot-reloc-threshold
>>> ^^^ Above command will start HOT RLEOCATE, because The data temperature
>>> is currently 109
>>> root@debian-i386:~# df -h
>>> Filesystem Size Used Avail Use% Mounted on
>>> /dev/vda1 16G 13G 2.2G 86% /
>>> tmpfs 4.8G 0 4.8G 0% /lib/init/rw
>>> udev 10M 176K 9.9M 2% /dev
>>> tmpfs 4.8G 0 4.8G 0% /dev/shm
>>> /dev/vdb 15G 2.1G 13G 14% /data2
>>> root@debian-i386:~# btrfs fi df /data2
>>> Data: total=3.01GB, used=6.25MB
>>> System: total=4.00MB, used=4.00KB
>>> Metadata: total=8.00MB, used=2.26MB
>>> Data_SSD: total=2.01GB, used=2.00GB
>>> root@debian-i386:~#
>>>
>>> Zhi Yong Wu (5):
>>>    vfs: add one list_head field
>>>    btrfs: add one new block group
>>>    btrfs: add one hot relocation kthread
>>>    procfs: add three proc interfaces
>>>    btrfs: add hot relocation support
>>>
>>>   fs/btrfs/Makefile            |   3 +-
>>>   fs/btrfs/ctree.h             |  26 +-
>>>   fs/btrfs/extent-tree.c       | 107 +++++-
>>>   fs/btrfs/extent_io.c         |  31 +-
>>>   fs/btrfs/extent_io.h         |   4 +
>>>   fs/btrfs/file.c              |  36 +-
>>>   fs/btrfs/hot_relocate.c      | 802
>>> +++++++++++++++++++++++++++++++++++++++++++
>>>   fs/btrfs/hot_relocate.h      |  48 +++
>>>   fs/btrfs/inode-map.c         |  13 +-
>>>   fs/btrfs/inode.c             |  92 ++++-
>>>   fs/btrfs/ioctl.c             |  23 +-
>>>   fs/btrfs/relocation.c        |  14 +-
>>>   fs/btrfs/super.c             |  30 +-
>>>   fs/btrfs/volumes.c           |  28 +-
>>>   fs/hot_tracking.c            |   1 +
>>>   include/linux/btrfs.h        |   4 +
>>>   include/linux/hot_tracking.h |   1 +
>>>   kernel/sysctl.c              |  22 ++
>>>   18 files changed, 1234 insertions(+), 51 deletions(-)
>>>   create mode 100644 fs/btrfs/hot_relocate.c
>>>   create mode 100644 fs/btrfs/hot_relocate.h
>
>



-- 
Regards,

Zhi Yong Wu

  reply	other threads:[~2013-05-09  6:42 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-06  8:53 [RFC 0/5] BTRFS hot relocation support zwu.kernel
2013-05-06  8:53 ` [RFC 1/5] vfs: add one list_head field zwu.kernel
2013-05-06  8:53 ` [RFC 2/5] btrfs: add one new block group zwu.kernel
2013-05-06  8:53 ` [RFC 3/5] btrfs: add one hot relocation kthread zwu.kernel
2013-05-06  8:53 ` [RFC 4/5] procfs: add three proc interfaces zwu.kernel
2013-05-06  8:53 ` [RFC 5/5] btrfs: add hot relocation support zwu.kernel
2013-05-06 20:36 ` [RFC 0/5] BTRFS " Kai Krakow
2013-05-07  5:17   ` Tomasz Torcz
2013-05-07 21:17     ` Kai Krakow
2013-05-07 21:35 ` Gabriel de Perthuis
2013-05-07 21:58   ` Kai Krakow
2013-05-07 22:27     ` Gabriel de Perthuis
2013-05-08 23:13 ` Zhi Yong Wu
2013-05-09  6:30   ` Stefan Behrens
2013-05-09  6:42     ` Zhi Yong Wu [this message]
2013-05-09  7:41       ` Stefan Behrens
2013-05-09  7:49         ` Zhi Yong Wu
2013-05-09  7:28     ` Zheng Liu
2013-05-09  6:56   ` Roger Binns
2013-05-19 10:41   ` Martin Steigerwald
2013-05-19 13:43     ` Zhi Yong Wu
2013-05-19 14:42       ` Martin Steigerwald
2013-05-19 13:46     ` Zhi Yong Wu
2013-05-09  7:17 ` Gabriel de Perthuis
2013-05-14 15:24 ` Zhi Yong Wu
2013-05-16  7:12   ` Kai Krakow
2013-05-17  7:23     ` Zhi Yong Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEH94LiBzA0SEg+TKRs8_MP43UEDq6ULU2WfjYmAMhneHRZKpw@mail.gmail.com \
    --to=zwu.kernel@gmail.com \
    --cc=chris.mason@fusionio.com \
    --cc=idryomov@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=sbehrens@giantdisaster.de \
    --cc=sekharan@us.ibm.com \
    --cc=wuzhy@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.