Your SlideShare is downloading. ×
0
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

10分で分かるLinuxブロックレイヤ

7,803

Published on

Published in: Technology
0 Comments
23 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,803
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
73
Comments
0
Likes
23
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 10分で分かる Linuxブロックレイヤ 星野  喬 サイボウズ・ラボ 2014-01-30
  • 2. 内容 •  Linux ブロックレイヤ俯瞰 –  IO スケジューラ –  デバイスドライバインターフェース –  IO インターフェース •  ⾼高度度な機能 –  md, dm, DRBD, 他 •  最近の話題 2
  • 3. Linux ブロックレイヤ俯瞰 VFS ディスクキャッシュ ディスク ファイル システム ディスク ファイル システム ブロック デバイス ファイル マッピングレイヤ 汎⽤用ブロック層 IOスケジューラ層 ブロック型デバイスドライバ ブロック型デバイスドライバ HDD HDD 出典:  詳解LINUXカーネル第3版7章 3
  • 4. IO スケジューラ •  IO リクエストを並べ変える •  種類(kernel 3.13) –  noop –  cfq (プロセスに対して公平) –  deadline (レイテンシ重視) •  ⽣生 HDD に対しては効果が⼤大きい •  むしろ邪魔になることもある 4
  • 5. ブロックデバイスドライバのインターフェース •  bio interface –  全て⾃自分で⾯面倒を⾒見見なければならない •  reqeust-queue (single) interface –  IOスケジューラの恩恵を受けられる –  システムで  1  つしかキューがないので ボトルネックに •  request-queue (multi) interface –  昨今の⾼高速デバイス/マルチコアシステム⽤用 –  Kernel 3.13 or later 5
  • 6. Single-queue vs Multi-queue Single-queue Multi-queue 出典: Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems 6
  • 7. IO インターフェース (投げる側) void generic_make_request(struct bio *bio); •  bio の中⾝身(抜粋) –  データバッファ –  read or write フラグ –  その他フラグ •  FLUSH: 直前までの全 write IO の永続化を保証 •  FUA:  当該 IO の永続化を保証 •  DISCARD: SSD などの trim/unmap ⽤用のフラグ –  bi_end_io: IO 完了了時に呼ばれるコールバック 7
  • 8. IO インターフェース  (投げられる側) void make_request(struct request_queue *q, struct bio *bio); •  bio interface 使⽤用時のコールバック –  q 内のデータを使ってデバイスを特定し, IO に必要な処理理を実⾏行行 –  make_request() は並列列に呼ばれる可能性も –  IO が完了了したら  bio_endio() を呼んでブロッ クレイヤに伝える 8
  • 9. md (multiple devices) •  機能 –  Software RAID (0,1,4,5,6,10) –  Multipath •  mdadm ツールで操作 9
  • 10. dm (device mapper) •  機能 –  仮想化 –  Snapshot (dm-snap) –  Thin-provisioning (dm-thinp) –  Software RAID (dm-raid, md を流流⽤用) –  暗号化(dm-crypt) •  LVM2 ツール他から操作 10
  • 11. DRBD •  ブロックデバイスレプリケーション ドライバ –  同期/⾮非同期モードのバリエーション –  Linbit 社が主に開発 •  DRBD Proxy –  遠隔レプリケーションには事実上必須 –  有償 –  ⼤大容量量バッファリングを実現 11
  • 12. 最近の話題 •  Atomic IO –  MySQL の double-write などが必要なくなる –  まだ汎⽤用ではない •  NVM (Non-volatile-memory) –  Block layer を使わないインターフェースを提案 –  ⾼高速な  flash memory などのため •  TPPS (Tiny Parallel Proportion Scheduler) –  cgoup + ⾼高速デバイス向け 12
  • 13. 最近の話題 –cont. •  dm-writeboost –  Write IO を⾼高速化するキャッシュ機構 –  WAL 使⽤用 –  開発中 •  WalB (⼿手前味噌) –  差分記録/取り出し⽤用のラッパーデバイス –  WAL 使⽤用 –  ver 1.0 13
  • 14. 参考⽂文献 •  詳解LINUXカーネル第3版 –  Daniel P. Bovet, Marco Cesati •  Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems –  Matias Bjørling, Jens Axboe, David Nellans, Philippe Bonnet •  Linux Weekly News –  http://lwn.net/ 14

×