SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
“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 …を比べると
容量あたりの価格 ランダムIO性能
SSD 高い ☹ 高い ☺
HDD 安い ☺ 低い ☹
bcacheとは (2)
●Linuxカーネル3.10でmainline入り
●Ubuntuでは14.10(utopic)でbcache-tools(ユーザースペース
ツール)含めてTechnology Previewとしてリリースノート記載
●主にサーバー向けという扱い
●インストーラー(ubiquity, d-i)のサポートは今のところなし
●Ubuntu 14.04 LTS(trusty)にもbcache-toolsが後からバックポー
トされた
これまでの経緯
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 など
ドキュメント
bcacheのセットアップ
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を使うのは簡単ではない
ストレージに変更を加えるので、バックアップは忘れずに。
bcacheのセットアップ
今回はd-iでインストール後に、データ領域だけbcache化する
backing device
SSD
/dev/sda
HDD
/dev/sdb
2: OS 3: cacheEFI
bcacheのセットアップ
d-iでSSD内にOS領域を確保してインストール
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用のパーティションを作成
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の指定
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へ記述
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
キャッシュモード
ベンチマーク(参考程度に)
ベンチマーク条件
●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
ハードウェア(参考程度に)
ベンチマーク条件
## シーケンシャル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を設定
ベンチマーク条件
[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
ベンチマーク結果
読み込み
ベンチマーク結果
書き込み
bcacheとMAAS
MAAS 1.9 + curtinでbcacheサポート追加
WebUIからも設定できる。現在RC3、まもなくリリース予定。
Questions?

Más contenido relacionado

La actualidad más candente

CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
whywaita
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
 
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor SkochinskyインテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
CODE BLUE
 

La actualidad más candente (20)

Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
 
Java でつくる 低レイテンシ実装の技巧
Java でつくる低レイテンシ実装の技巧Java でつくる低レイテンシ実装の技巧
Java でつくる 低レイテンシ実装の技巧
 
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
OpenStack超入門シリーズ いまさら聞けないNeutronの使い方
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
 
dm-writeboost-kernelvm
dm-writeboost-kernelvmdm-writeboost-kernelvm
dm-writeboost-kernelvm
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する
 
プロセスとコンテキストスイッチ
プロセスとコンテキストスイッチプロセスとコンテキストスイッチ
プロセスとコンテキストスイッチ
 
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor SkochinskyインテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor Skochinsky
 

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

NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
Takuro Iizuka
 
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
Yusaku Watanabe
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
Kazuyuki Sato
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
 
170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう
170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう
170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう
Ken Sawada
 

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

Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
 
CentOS7で統合バックアップBacula7.0を使ってみよう
CentOS7で統合バックアップBacula7.0を使ってみようCentOS7で統合バックアップBacula7.0を使ってみよう
CentOS7で統合バックアップBacula7.0を使ってみよう
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CDAzure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
Azure DevOps で実現する Unity アプリのハイパフォーマンス CI/CD
 
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
 
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
 
LagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDKLagopusとAzureとIPsecとDPDK
LagopusとAzureとIPsecとDPDK
 
Firefox OS + Raspberry Pi
Firefox OS + Raspberry PiFirefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
 
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
「前回の COMSTAR ネタに刺激されてしまったので、オレも COMSTAR を使ってみた。」(仮)
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 
qemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみたqemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみた
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩RHEL on Azure、初めの一歩
RHEL on Azure、初めの一歩
 
170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう
170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう
170311【bacula】cent os7で統合バックアップbacula7.4を使ってみよう
 
Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common LispLisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内Gentooサークル新歓コンパのご案内
Gentooサークル新歓コンパのご案内
 
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)
 

Último

Último (10)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

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