Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
“bcache”を使ってSSDの速さと
HDDの大容量のいいとこどり
Ubuntu 15.10リリース記念オフラインミーティング15.12
2015-12-12
Nobuto Murata <nobuto@ubuntu.com>
bcacheとは (1)
bcacheは、比較的小容量のSSD(価格抑えめ)を大容量のHDDの
キャッシュとして組み合わせ、大容量を実現しながらもランダムIO
性能をSSD並にしてくれる技術。
一般にSSDとHDD …を比べると
容量あたりの価...
bcacheとは (2)
●Linuxカーネル3.10でmainline入り
●Ubuntuでは14.10(utopic)でbcache-tools(ユーザースペース
ツール)含めてTechnology Previewとしてリリースノート記載
...
bcacheとは (3)
● https://www.kernel.org/doc/Documentation/bcache.txt
● http://bcache.evilpiepirate.org/
こんなところで活躍:
launchpad...
bcacheのセットアップ
bcacheのセットアップ
“ちなみに curtin”(後述)ではbcacheに対応しており、
下記のようなYAMLでbcacheの設定を渡せます。
partitioning_commands:
builtin: [curtin, block-...
ストレージに変更を加えるので、バックアップは忘れずに。
bcacheのセットアップ
今回はd-iでインストール後に、データ領域だけbcache化する
backing device
SSD
/dev/sda
HDD
/dev/sdb
2: OS ...
bcacheのセットアップ
d-iでSSD内にOS領域を確保してインストール
bcacheのセットアップ
$ sudo parted /dev/sda print
...
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boo...
bcacheのセットアップ
$ sudo apt install bcache-tools
$ sudo make-bcache -B /dev/sdb
$ sudo make-bcache -C /dev/sda3
## cache devi...
bcacheのセットアップ
## ファイルシステムの作成
$ sudo mkfs.ext4 /dev/bcache0
$ sudo mkdir /media/bcache
## UUIDの確認
$ ls -l /dev/disk/by-uuid...
bcacheのセットアップ
## キャッシュモードの確認
$ cat /sys/block/bcache0/bcache/cache_mode
[writethrough] writeback writearound none
## キャッシュ...
ベンチマーク(参考程度に)
ベンチマーク条件
●CPU: AMD A8-7600
●メモリ: 32GB
●SSD: INTEL SSDSC2CT12 (Intel SSD 330シリーズ 120GB)
●HDD: TOSHIBA MQ01ABD0 (2.5インチ 750G...
ベンチマーク条件
## シーケンシャルIOの検出/バイパスオフ
$ echo 0 | sudo tee /sys/block/bcache0/bcache/sequential_cutoff
## レイテンシ検出オフ
$ echo 0 | su...
ベンチマーク条件
[global]
bs=4k
ioengine=libaio
iodepth=4
size=4g
direct=1
runtime=60
directory=/mnt/test
filename=ssd.test.file
f...
ベンチマーク結果
読み込み
ベンチマーク結果
書き込み
bcacheとMAAS
MAAS 1.9 + curtinでbcacheサポート追加
WebUIからも設定できる。現在RC3、まもなくリリース予定。
Questions?
Upcoming SlideShare
Loading in …5
×

“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12

4,020 views

Published on

SSDを大容量のHDDのキャッシュとして組み合わせ、大容量を実現しながらもランダムIO性能をSSD並にしてくれるbcacheの紹介です。

Published in: Technology
  • Be the first to comment

“bcache”を使ってSSDの速さと HDDの大容量のいいとこどり 2015-12-12

  1. 1. “bcache”を使ってSSDの速さと HDDの大容量のいいとこどり Ubuntu 15.10リリース記念オフラインミーティング15.12 2015-12-12 Nobuto Murata <nobuto@ubuntu.com>
  2. 2. bcacheとは (1) bcacheは、比較的小容量のSSD(価格抑えめ)を大容量のHDDの キャッシュとして組み合わせ、大容量を実現しながらもランダムIO 性能をSSD並にしてくれる技術。 一般にSSDとHDD …を比べると 容量あたりの価格 ランダムIO性能 SSD 高い ☹ 高い ☺ HDD 安い ☺ 低い ☹
  3. 3. bcacheとは (2) ●Linuxカーネル3.10でmainline入り ●Ubuntuでは14.10(utopic)でbcache-tools(ユーザースペース ツール)含めてTechnology Previewとしてリリースノート記載 ●主にサーバー向けという扱い ●インストーラー(ubiquity, d-i)のサポートは今のところなし ●Ubuntu 14.04 LTS(trusty)にもbcache-toolsが後からバックポー トされた これまでの経緯
  4. 4. bcacheとは (3) ● https://www.kernel.org/doc/Documentation/bcache.txt ● http://bcache.evilpiepirate.org/ こんなところで活躍: launchpad.net “800GB+ PostgreSQL database”の高速化 http://insights.ubuntu.com/2015/12/10/using-bcache-for-performan ce-gains-on-the-launchpad-database-servers/ SSDをキャッシュとして使える他の実装 ●dm-cache ●Flashcache/EnhanceIO ●dm-writeboost など ドキュメント
  5. 5. bcacheのセットアップ
  6. 6. bcacheのセットアップ “ちなみに curtin”(後述)ではbcacheに対応しており、 下記のようなYAMLでbcacheの設定を渡せます。 partitioning_commands: builtin: [curtin, block-meta, custom] storage: config: - {grub_device: true, id: sda, name: sda, path: /dev/sda, ptable: msdos, t - {id: sdb, name: sdb, path: /dev/sdb, type: disk, wipe: superblock} - {device: sda, id: sda-part1, name: sda-part1, number: 1, offset: 4194304 - {device: sda, id: sda-part2, name: sda-part2, number: 2, size: 159719096 - {backing_device: sdb, cache_device: sda-part2, cache_mode: writeback, id - {fstype: ext4, id: sda-part1_format, label: '', type: format, uuid: 179d - {fstype: ext4, id: bcache0_format, label: '', type: format, uuid: 422d4b - {device: bcache0_format, id: bcache0_mount, path: /, type: mount} - {device: sda-part1_format, id: sda-part1_mount, path: /boot, type: mount version: 1 インストーラーのサポートがないので “/” にbcacheを使うのは簡単ではない
  7. 7. ストレージに変更を加えるので、バックアップは忘れずに。 bcacheのセットアップ 今回はd-iでインストール後に、データ領域だけbcache化する backing device SSD /dev/sda HDD /dev/sdb 2: OS 3: cacheEFI
  8. 8. bcacheのセットアップ d-iでSSD内にOS領域を確保してインストール
  9. 9. bcacheのセットアップ $ sudo parted /dev/sda print ... Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 boot 2 538MB 40.5GB 40.0GB ext4 $ sudo parted /dev/sda mkpart primary 40.5GB 100% $ sudo parted /dev/sda print ... Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 boot 2 538MB 40.5GB 40.0GB ext4 3 40.5GB 120GB 79.5GB primary cache用のパーティションを作成
  10. 10. bcacheのセットアップ $ sudo apt install bcache-tools $ sudo make-bcache -B /dev/sdb $ sudo make-bcache -C /dev/sda3 ## cache deviceとbacking deviceの紐付け $ sudo bcache-super-show /dev/sda3 | grep cset.uuid $ echo '<CSET.UUID>' | sudo tee /sys/block/bcache0/bcache/attach cache device, backing deviceの指定
  11. 11. bcacheのセットアップ ## ファイルシステムの作成 $ sudo mkfs.ext4 /dev/bcache0 $ sudo mkdir /media/bcache ## UUIDの確認 $ ls -l /dev/disk/by-uuid/ | grep bcache0 $ cat <<EOF | sudo tee -a /etc/fstab UUID=<UUID> /media/bcache ext4 defaults 0 0 EOF $ sudo mount -a 作成したbcacheデバイスを/etc/fstabへ記述
  12. 12. bcacheのセットアップ ## キャッシュモードの確認 $ cat /sys/block/bcache0/bcache/cache_mode [writethrough] writeback writearound none ## キャッシュモードの切り替え例 ## “writeback”は書き込みパフォーマンスが上がるが、 ## SSDが故障した際にデータを失う可能性がある。 $ echo writeback | sudo tee /sys/block/bcache0/bcache/cache_mode $ cat /sys/block/bcache0/bcache/cache_mode writethrough [writeback] writearound none キャッシュモード
  13. 13. ベンチマーク(参考程度に)
  14. 14. ベンチマーク条件 ●CPU: AMD A8-7600 ●メモリ: 32GB ●SSD: INTEL SSDSC2CT12 (Intel SSD 330シリーズ 120GB) ●HDD: TOSHIBA MQ01ABD0 (2.5インチ 750GB) OS関連 ●Ubuntu 14.04 LTS ●LTS vividカーネル(3.19) ●ext4ファイルシステム ●fioパッケージ 2.1.3-1 ハードウェア(参考程度に)
  15. 15. ベンチマーク条件 ## シーケンシャルIOの検出/バイパスオフ $ echo 0 | sudo tee /sys/block/bcache0/bcache/sequential_cutoff ## レイテンシ検出オフ $ echo 0 | sudo tee /sys/fs/bcache/<CSET.UUID>/congested_read_threshold_us $ echo 0 | sudo tee /sys/fs/bcache/<CSET.UUID>/congested_write_threshold_us SSDを最大限活用するようにbcacheを設定
  16. 16. ベンチマーク条件 [global] bs=4k ioengine=libaio iodepth=4 size=4g direct=1 runtime=60 directory=/mnt/test filename=ssd.test.file fio: “examples/ssd-test.fio”のテストサイズを変更 [seq-read] rw=read stonewall [rand-read] rw=randread stonewall [seq-write] rw=write stonewall [rand-write] rw=randwrite stonewall
  17. 17. ベンチマーク結果 読み込み
  18. 18. ベンチマーク結果 書き込み
  19. 19. bcacheとMAAS
  20. 20. MAAS 1.9 + curtinでbcacheサポート追加 WebUIからも設定できる。現在RC3、まもなくリリース予定。
  21. 21. Questions?

×