SlideShare a Scribd company logo
1 of 39
Download to read offline
自宅SAN友の会
 サーバ仮想化のためのストレージシステム入門

                          今更聞けないストレージの基本




                                                                                      1
Origine Uploaded by Angelina :) http://www.flickr.com/photos/angelinawb/1085267480/
自己紹介



           はら かずひさ
          Twitter:kazuhisya


              横浜市民

     普段は某社で仮想化関連技術を軸に、
   社内講師やら技術検証、御用聞きなんかしてます。
          OSC出没率高し




                              2
ストレージってなんだっけ
SANを始める前の基礎情報




                3
ストレージって何だっけ
• ストレージ
 – 単に『ストレージ』といった場合、いろいろ意味がある
   •   DASストレージだとか
   •   NASストレージだとか
   •   SANストレージだとか
   •   胃腸薬だとか


 – 凄く乱暴な言い方をすると
   • 基本的に永続利用の(メモリと違って再起動しても消えないよ)
       – 補助記憶装置だとか二次記憶装置とかとも言う
   • ハードディスク
   • SSD
   • もしくは上記を束ねたやつを、OSやらアプリやらから、何かしらの
     形で使えるようにしたもの
                                     4
最近の流行




   兎にも角にも、SSD


                5
SSDがやっぱ速い、とは言え・・・


• オールSSDでサービスを組むようになるに
  は、まだ時間が掛かると思われる
 – それなりに高額
 – 安いやつは信頼性が・・・
 – 容量の問題
  • いずれ解決される・・・ハズ?




                         6
ここから本題

                         わりかし一般的に業務で使われる
                            HDDのチューニング




                                                                                        7
Origine Uploaded by autumn_bliss http://www.flickr.com/photos/autumn_bliss/198493795/
HDDの性能指標


• アクセスに掛かる時間
 – 下記3つをあわせた時間

  • シーク待ち時間
  • 回転待ち時間
  • 転送時間
   – 実は基本情報に出てくる



                   8
ハードディスクの見方



•   大きさ                            •   I/F
    – 3.5 / 2.5 / 1.8インチなど              – 接続する線の形式(線とは限らな
    – サーバでは主に3.5、時々2.5イン                  いけど・・・)
      チ                                 – サーバでは、SAS、もしくは
                                          SATA2が一般的

•   回転数                            •   ディスク枚数
    – 回転毎分 (rotation per minute)        – 円盤の枚数
    – 1分間に、何回円盤をまわせるか
                                   •   シークタイム
•   キャッシュ                               – ディスクヘッドが円盤の目的の部
    – 円盤から読み出したデータを一時                     分に移動するのに要する時間
      的に記憶したり                           – これが短いほど、一般的には速い
    – 書き込むデータを円盤に書く前に                     HDDということになる
      一時的に置いたりする
    – 多い方が速い!とは限らないので
      注意
                                                            9
インターフェースの話
• 要は線の話(PIC-Exとかもあるけど)
  – 繋ぐ形式によって、限界が制限される
    • これに制限されるHDDは割と稀(SSDは簡単に超えたりする)


  – たとえば
    • SATA(Serial Advanced Technology Attachment)
       – SATA-150: 1.2 Gbit/s (150 MB/s)
       – SATA-300: 2.4 Gbit/s (300 MB/s)
       – SATA-600: 4.8 Gbit/s (600 MB/s)

       – SATA-300(SATA2とも言う)がデスクトップPCやエントリー
         サーバに多い

    • SAS(Serial Attached SCSI)
       – SAS 1.0: 3.0 Gbit/s (300 MB/s)
       – SAS 2.0: 6.0 Gbit/s (600 MB/s)
                                                    10
ディスクアクセスの時間の感覚をつかむ
• ざっくりアクセスに掛か
  る時間の感覚

 –   CPU: 8ns(ナノセック)
 –   メモリ: 50ns
 –   NIC: 0.1ms (ミリセック)
 –   HDD: 5ms
     • かなりいい加減な数字
     • それでもCPUやメモリに比べ
       て10~100万倍オーダーで
       遅い


 – シークタイムが 5msだと
   すると、1秒当たり200回
   アクセスできる                11
シーケンシャルとランダムアクセス
• シーケンシャルアクセス
 – データを特定箇所から順に読み/書きする
 – つまり円盤を普通にまわし、順繰りに読み書きすれば
   よろしい
 – アクセスしやすいので速い(≒カタログスペック)


• ランダムアクセス
 – 読み書きしたいデータの場所をインデックスなどの位
   置情報をもとに割り出し、直接その場所にアクセスす
   る方法
 – つまり目的の箇所を探し出して、違うところは読み飛
   ばさなければならない
 – 要は遅い                       12
シーケンシャルとランダムアクセス




 シーケンシャルアクセス   ランダムアクセス



                          13
回転待ち時間
• 回転待ち時間を求める
 – シークタイムはカタログスペックに載ってい
   る
 – 回転待ち時間は?

 – 基本情報の対策本とかに載ってるよ!

 – 例: 7200rpmのSATA
   • 7200 / 60秒 = 120回転
   • 半回転だとざっくり240回/秒アクセスできる
     – アクセス、というは物理的な意味
                              14
HDD単体での性能
• シークタイム、回転待ち時間が特に重要
 – 要は
   • シークタイムが短く
   • 回転数が多い
 – ものを選べ、ということ


• Why?
 – A. どんなに頑張っても、H/Wの限界性能以上
   はOSやミドルをいじっても出すことは出来な
   いから
   • あんましエコではない
                             15
そんなに単純じゃない現実
I/Oスケジューラーも、ファイルシステムも、
          あるんだよ




                         16
Linux Kernel
I/Oスケジューラ




                  17
Linux KernelのI/Oスケジューラ


• I/Oスケジューラってなんぞ
 – HDD(ブロックデバイス)に対して、アクセス
   要求が来るたびに、正直に都度アクセスする
   のではなく、シーク待ちや回転待ちを最小化
   するよう、並び替えたりキューイングする機
   能




                            18
種類
• メジャーどころで3種類
 – cfq (Completely Fair Queuing)
     • RHEL系はこれがデフォルト
     • 特定プロセスにI/O要求が偏るのを防ぎ、他のプロセスにも
       I/Oが振り分けられるように調整

 – deadline
     • 読み/書きのI/Oをバランスよく処理する(≠プロセス単位)
     • 他のスケジューラは、読み/書きでは区別していない
     • 仮想化やDBサーバでお勧め(KVMの推奨スケジューラ)

 – noop
     • 『I/O要求を物理Disk上に配置する』こと以外は特に行わな
       い
     • スケジューリングをしない、という事(=スケジューリング
       のオーバーヘッドが発生しない)
     • 自前でスケジューリングできるDBや、H/Wで行えるタイプ
       のストレージやSSDを使うとき有利                19
確認・変更方法

1. 確認方法
 # cat /sys/block/sda/queue/scheduler
 noop [deadline] cfq

 [   ]でくくられているのが今のスケジューラ


2. 変更(一時的)
 # echo noop > /sys/block/sda/queue/scheduler


3. 変更(永続)
 • grub.conf の kernel行 に elevator=deadline を追記

                                                 20
Linux
ファイルシステム




           21
Linuxのファイルシステム
• よく使われるメジャーどころ
 – ext系
    • ext2: 最近はあまり見ない
    • ext3: 大体これが多い、RHEL5デフォルト
    • ext4: 最近だとこちら、RHEL6デフォルト、後方互換性が高い

 – XFS
    • RHEL5だとオプション扱い(別料金)
    • ファイルレベルでなく、FSそのもにダイレクトアクセスできる(高
      速)

 – btrfs
    • Solaris ZFSの対抗馬的なモダンFS(スナップショットなど)
    • 非常によろしい、らしいけど商用で使うにはまだ時期尚早(?)

 – 他にも
    • JFS, ReiseFSなども
    • btrfs, NILFS2, Cephなど、最近はFSまわりは活発    22
ジャーナリングファイルシステム


• ext3, ext4, XFS…
  – ジャーナリングファイルシステム
    • ファイルシステム上のメタデータを書き換え処理
      (トランザクション)単位で管理・保持する事が
      できる
    • 書き換え中に電源断や処理中断が発生し、ファイ
      ル構成情報に矛盾が発生した場合でも、素早く検
      査/修復処理を行うことが出来る
      – ext2にはジャーナルがない



                               23
ext3のジャージャーナリング方式
• 基本的には3種類
 – writeback
    • メタデータのみをジャーナリング対象とする
    • ジャーナリング順は保障されない
    • ファイル消失は防げるが、データ消失リスクはある
        – 全て更新か、全く更新が無いか、しか判別できない
    • 最も高速
    • いつの間にかデフォルトになった模様

 – orderd
    • メタデータのみをジャーナリング対象とする
    • ジャーナリング順を保障する
    • writebackよりも若干信頼性が高い

 – journal
    • 実データもジャーナリング対象とする
    • fsync() や fdatasync() を発行した所までは完全に保障される
    • 最も低速                                      24
ext系チューニング
• 代表的なチューニング項目(マウントオプション)
 – dir_index
    • DBのインディックスとほぼ同じ働き
    • ファイル数が多すぎるとパフォーマンスの逆転現象が起こりうる

 – noatime
    • 最終アクセス時刻の記録を止める
        – 作成時刻、更新時刻、アクセス時刻
    • 更新時刻がアクセス時刻を追い越す罠
        – 特定のアプリケーションで不具合あり

 – relatime(kernel 2.6.20~)
    • 更新時刻(mtime)やファイル属性の修正時刻(ctime)が、最終アクセ
      ス時刻を追い越したときに、atimeを修正する
    • noatimeよりもお勧め、デフォルトで有効になるディストリが多い

 – discard
    • ext4,SSD用オプション
    • RHEL5.6 + ext3 では使えた
    • ATAデバイスにはTRIMコマンド、SCSIデバイスにはUNMAPコマン    25
      ドを発行する
RAIDのおはなし
   一般




            26
RAIDの話
• RAID
  – ハードウェアRAID
    • いわゆるカードもの PCI-Express接続とか
    • マザーボードの機能として付いてるものも
         – 廉価版は、ソフトウェアRAIDな場合も・・・
    • 専用のコントローラーが処理する
    • ライトキャッシュ(BBWC)が付いている事が結構あ
      る


  – ソフトウェアRAID
    • 一般的にはOS側で束ねるRAID
    • CPUが処理する
                                    27
RAIDのおはなし
    BBWC




            28
BBWC
• Battery Backed Write Cache
  – バッテリーバックアップ付きライトキャッ
    シュ
    • RAIDコントローラーに付けるキャッシュ装置
    • 耐障害性を維持しつつ、書き込み性能を上げる事
      が出来る
    • RAIDカードとHDD本体の間で働く
    • エントリークラスで128~512MB程度はある


  – キャッシュに乗り切るサイズであれば、OS
    側からfsync() などの同期書き込みが実行さ
    れても、キャッシュに高速に保存できる(その
                                29
    後よしなに実HDDに書かれる)
BBWC
• その後よしなに実HDDに書かれる?
 – よしなに、とは
  • デバドラに依存するが
  • アクセス効率が良くなるように
  • ある程度まとまった単位で書かれる


 – ある程度まとまった単位
  • シーケンシャルに読める可能性が高い
  • Diskの回転、つまりコミット待ち発生を抑え
    ることが出来る


                             30
BBWCを使うとき気にすること




• Q. BBWCを使う時、HDD自体のキャッシュはどう
  なるの?
• A. HDD側のキャッシュはOFFにしておくこと
 – RAIDコントローラーのコマンドでOFFに出来る
 – arcconfやBIOSなどでどうぞ

• Q. なんでHDD側のキャッシュはOFFの方がいい
  の?
• A. HDD側のキャッシュにはバッテリー乗っていない
  よ! キャッシュ書ききる前に電源落ちたら、他も巻き    31
RAIDのおはなし
ストライピングサイズ




             32
ストライピングサイズ



• ストライピングサイズ/チャンクサイズ
 – 複数のDiskにストライプする際のデータ
   分割単位、のこと
 – 通常4kb~1MB程度の範囲




                          33
ストライピングサイズ
• ストライピングサイズが小さすぎると・・・
 – 1ブロックが複数ディスクに跨って配置されてしまう
 – 1ブロックを読み出すのに、複数アクセスする必要が
   ある

 – 複数アクセスを同時に行うから、速いのでは?
  • 1HDD / s あたりのランダムアクセスできる回数には上限
    がある
  • スループットが下がる
  • 1ブロックの読み込みは、1アクセスで済ませるべき


• ストライピングサイズが大きすぎると・・・
 – こんどはシーケンシャルが遅くなる
                                     34
  • 分散読み込みできないから
ストライピングサイズの勘所
• 要はどの数値にするのがいいか

• 残念ながら要件次第
 – シーケンシャルアクセスが多い
  • 若干小さめに取る
   – 例えば、4KB, 16KBなど


 – ランダムアクセスが多い
  • ブロックサイズより大幅に多く取る
   – 例えば256KB, 512KBなど


                         35
おわりに




       36
おわりに

• 他にも考えることは、もっともっとあります
 – RAIDレベルは?NCQは?キューザイズは?etc…


• なので
 – H/Wを良く知ろう
   • 限界性能を知る


 – Blogのコピペも良いけど、”何故そうなのか”も考
   えてみる
   • ドラスティックにパフォーマンスに変化が出るような
     ものには、得てしてデメリットもあるものです
                                37
まとめ




• 慣れないことを本番環境でいきなりやるのはつらい
 • 懐具合と相談すれば、わりかしそれっぽい環境はできる
 • もちろんどう考えてもできないものある
 • 特にLinux周りのスキルはコストをあまりかけずとも習得
   しやすい
• というわけで、主に自宅で(←SAN友の趣旨)検証し
  てみましょう
                                  38
おわり

続きは懇親会で!




           39

More Related Content

What's hot

PowerDNSのご紹介
PowerDNSのご紹介PowerDNSのご紹介
PowerDNSのご紹介Akira Matsuda
 
10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーションTakashi Hoshino
 
Web Service on SSD
Web Service on SSDWeb Service on SSD
Web Service on SSDKazuho Oku
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニングCraft works
 
Cloud os techday_0614
Cloud os techday_0614Cloud os techday_0614
Cloud os techday_0614Takano Masaru
 
Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?Sunao Tomita
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Takashi Takizawa
 
MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編Takanori Sejima
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話Takanori Sejima
 
MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後Takanori Sejima
 
5分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj20145分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj2014Cloudera Japan
 
地理分散DBについて
地理分散DBについて地理分散DBについて
地理分散DBについてKumazaki Hiroki
 
はじめるCassandra
はじめるCassandraはじめるCassandra
はじめるCassandraKakeru Iwanaga
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Takuya ASADA
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話Takanori Sejima
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御Takashi Hoshino
 

What's hot (20)

PowerDNSのご紹介
PowerDNSのご紹介PowerDNSのご紹介
PowerDNSのご紹介
 
Consistency level
Consistency levelConsistency level
Consistency level
 
CPUの同時実行機能
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能
 
10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション
 
Web Service on SSD
Web Service on SSDWeb Service on SSD
Web Service on SSD
 
Code jp2015 cpuの話
Code jp2015 cpuの話Code jp2015 cpuの話
Code jp2015 cpuの話
 
Cpu cache arch
Cpu cache archCpu cache arch
Cpu cache arch
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニング
 
Cloud os techday_0614
Cloud os techday_0614Cloud os techday_0614
Cloud os techday_0614
 
Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?Windows Azure の中でも動いている InfiniBand って何?
Windows Azure の中でも動いている InfiniBand って何?
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
 
MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後MySQLやSSDとかの話 その後
MySQLやSSDとかの話 その後
 
5分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj20145分でわかる Apache HBase 最新版 #hcj2014
5分でわかる Apache HBase 最新版 #hcj2014
 
地理分散DBについて
地理分散DBについて地理分散DBについて
地理分散DBについて
 
はじめるCassandra
はじめるCassandraはじめるCassandra
はじめるCassandra
 
Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」Seastar in 歌舞伎座.tech#8「C++初心者会」
Seastar in 歌舞伎座.tech#8「C++初心者会」
 
TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御
 

Similar to Osc2011 Do

ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話Tokoroten Nakayama
 
20110805 hddssd research
20110805 hddssd research20110805 hddssd research
20110805 hddssd researchYusei Yamanaka
 
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜VirtualTech Japan Inc.
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントCloudera Japan
 
NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)Takanori Sejima
 
佐野裕章 Virident 社製半導体ストレージ flash max の検証
佐野裕章 Virident 社製半導体ストレージ flash max の検証佐野裕章 Virident 社製半導体ストレージ flash max の検証
佐野裕章 Virident 社製半導体ストレージ flash max の検証Hiroaki Sano
 
qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所Takeshi HASEGAWA
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1Takano Masaru
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4shingo suzuki
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4shingo suzuki
 
Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2nekop
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)Takahiro Iwase
 
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeosoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeNoriyasu Sakaue
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-mainShotaro Uchida
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 

Similar to Osc2011 Do (20)

ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
 
20111028ssmjp
20111028ssmjp20111028ssmjp
20111028ssmjp
 
20110805 hddssd research
20110805 hddssd research20110805 hddssd research
20110805 hddssd research
 
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)NAND Flash から InnoDB にかけての話(仮)
NAND Flash から InnoDB にかけての話(仮)
 
佐野裕章 Virident 社製半導体ストレージ flash max の検証
佐野裕章 Virident 社製半導体ストレージ flash max の検証佐野裕章 Virident 社製半導体ストレージ flash max の検証
佐野裕章 Virident 社製半導体ストレージ flash max の検証
 
qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所qpstudy 2014.04 ハードウェア設計の勘所
qpstudy 2014.04 ハードウェア設計の勘所
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
 
システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4システムパフォーマンス勉強会#4
システムパフォーマンス勉強会#4
 
Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslopeosoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
 
introduction of WalB
introduction of WalBintroduction of WalB
introduction of WalB
 
Redis速習会@Wantedly
Redis速習会@WantedlyRedis速習会@Wantedly
Redis速習会@Wantedly
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 

More from Kazuhisa Hara

More from Kazuhisa Hara (7)

ZFS on Linux @ZFS Day 2011.10
ZFS on Linux @ZFS Day 2011.10ZFS on Linux @ZFS Day 2011.10
ZFS on Linux @ZFS Day 2011.10
 
Osc2010 Do LT
Osc2010 Do LTOsc2010 Do LT
Osc2010 Do LT
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
Xen Nic
Xen NicXen Nic
Xen Nic
 
Osc2008 Opensuse Moonlinx
Osc2008 Opensuse MoonlinxOsc2008 Opensuse Moonlinx
Osc2008 Opensuse Moonlinx
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
 
090214ldd Mogilefs
090214ldd Mogilefs090214ldd Mogilefs
090214ldd Mogilefs
 

Recently uploaded

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: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...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: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 UnderstandingToru Tamaki
 
論文紹介: 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 Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/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...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: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
 
論文紹介: 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
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

Osc2011 Do

  • 1. 自宅SAN友の会 サーバ仮想化のためのストレージシステム入門 今更聞けないストレージの基本 1 Origine Uploaded by Angelina :) http://www.flickr.com/photos/angelinawb/1085267480/
  • 2. 自己紹介 はら かずひさ Twitter:kazuhisya 横浜市民 普段は某社で仮想化関連技術を軸に、 社内講師やら技術検証、御用聞きなんかしてます。 OSC出没率高し 2
  • 4. ストレージって何だっけ • ストレージ – 単に『ストレージ』といった場合、いろいろ意味がある • DASストレージだとか • NASストレージだとか • SANストレージだとか • 胃腸薬だとか – 凄く乱暴な言い方をすると • 基本的に永続利用の(メモリと違って再起動しても消えないよ) – 補助記憶装置だとか二次記憶装置とかとも言う • ハードディスク • SSD • もしくは上記を束ねたやつを、OSやらアプリやらから、何かしらの 形で使えるようにしたもの 4
  • 5. 最近の流行 兎にも角にも、SSD 5
  • 6. SSDがやっぱ速い、とは言え・・・ • オールSSDでサービスを組むようになるに は、まだ時間が掛かると思われる – それなりに高額 – 安いやつは信頼性が・・・ – 容量の問題 • いずれ解決される・・・ハズ? 6
  • 7. ここから本題 わりかし一般的に業務で使われる HDDのチューニング 7 Origine Uploaded by autumn_bliss http://www.flickr.com/photos/autumn_bliss/198493795/
  • 8. HDDの性能指標 • アクセスに掛かる時間 – 下記3つをあわせた時間 • シーク待ち時間 • 回転待ち時間 • 転送時間 – 実は基本情報に出てくる 8
  • 9. ハードディスクの見方 • 大きさ • I/F – 3.5 / 2.5 / 1.8インチなど – 接続する線の形式(線とは限らな – サーバでは主に3.5、時々2.5イン いけど・・・) チ – サーバでは、SAS、もしくは SATA2が一般的 • 回転数 • ディスク枚数 – 回転毎分 (rotation per minute) – 円盤の枚数 – 1分間に、何回円盤をまわせるか • シークタイム • キャッシュ – ディスクヘッドが円盤の目的の部 – 円盤から読み出したデータを一時 分に移動するのに要する時間 的に記憶したり – これが短いほど、一般的には速い – 書き込むデータを円盤に書く前に HDDということになる 一時的に置いたりする – 多い方が速い!とは限らないので 注意 9
  • 10. インターフェースの話 • 要は線の話(PIC-Exとかもあるけど) – 繋ぐ形式によって、限界が制限される • これに制限されるHDDは割と稀(SSDは簡単に超えたりする) – たとえば • SATA(Serial Advanced Technology Attachment) – SATA-150: 1.2 Gbit/s (150 MB/s) – SATA-300: 2.4 Gbit/s (300 MB/s) – SATA-600: 4.8 Gbit/s (600 MB/s) – SATA-300(SATA2とも言う)がデスクトップPCやエントリー サーバに多い • SAS(Serial Attached SCSI) – SAS 1.0: 3.0 Gbit/s (300 MB/s) – SAS 2.0: 6.0 Gbit/s (600 MB/s) 10
  • 11. ディスクアクセスの時間の感覚をつかむ • ざっくりアクセスに掛か る時間の感覚 – CPU: 8ns(ナノセック) – メモリ: 50ns – NIC: 0.1ms (ミリセック) – HDD: 5ms • かなりいい加減な数字 • それでもCPUやメモリに比べ て10~100万倍オーダーで 遅い – シークタイムが 5msだと すると、1秒当たり200回 アクセスできる 11
  • 12. シーケンシャルとランダムアクセス • シーケンシャルアクセス – データを特定箇所から順に読み/書きする – つまり円盤を普通にまわし、順繰りに読み書きすれば よろしい – アクセスしやすいので速い(≒カタログスペック) • ランダムアクセス – 読み書きしたいデータの場所をインデックスなどの位 置情報をもとに割り出し、直接その場所にアクセスす る方法 – つまり目的の箇所を探し出して、違うところは読み飛 ばさなければならない – 要は遅い 12
  • 14. 回転待ち時間 • 回転待ち時間を求める – シークタイムはカタログスペックに載ってい る – 回転待ち時間は? – 基本情報の対策本とかに載ってるよ! – 例: 7200rpmのSATA • 7200 / 60秒 = 120回転 • 半回転だとざっくり240回/秒アクセスできる – アクセス、というは物理的な意味 14
  • 15. HDD単体での性能 • シークタイム、回転待ち時間が特に重要 – 要は • シークタイムが短く • 回転数が多い – ものを選べ、ということ • Why? – A. どんなに頑張っても、H/Wの限界性能以上 はOSやミドルをいじっても出すことは出来な いから • あんましエコではない 15
  • 18. Linux KernelのI/Oスケジューラ • I/Oスケジューラってなんぞ – HDD(ブロックデバイス)に対して、アクセス 要求が来るたびに、正直に都度アクセスする のではなく、シーク待ちや回転待ちを最小化 するよう、並び替えたりキューイングする機 能 18
  • 19. 種類 • メジャーどころで3種類 – cfq (Completely Fair Queuing) • RHEL系はこれがデフォルト • 特定プロセスにI/O要求が偏るのを防ぎ、他のプロセスにも I/Oが振り分けられるように調整 – deadline • 読み/書きのI/Oをバランスよく処理する(≠プロセス単位) • 他のスケジューラは、読み/書きでは区別していない • 仮想化やDBサーバでお勧め(KVMの推奨スケジューラ) – noop • 『I/O要求を物理Disk上に配置する』こと以外は特に行わな い • スケジューリングをしない、という事(=スケジューリング のオーバーヘッドが発生しない) • 自前でスケジューリングできるDBや、H/Wで行えるタイプ のストレージやSSDを使うとき有利 19
  • 20. 確認・変更方法 1. 確認方法 # cat /sys/block/sda/queue/scheduler noop [deadline] cfq [ ]でくくられているのが今のスケジューラ 2. 変更(一時的) # echo noop > /sys/block/sda/queue/scheduler 3. 変更(永続) • grub.conf の kernel行 に elevator=deadline を追記 20
  • 22. Linuxのファイルシステム • よく使われるメジャーどころ – ext系 • ext2: 最近はあまり見ない • ext3: 大体これが多い、RHEL5デフォルト • ext4: 最近だとこちら、RHEL6デフォルト、後方互換性が高い – XFS • RHEL5だとオプション扱い(別料金) • ファイルレベルでなく、FSそのもにダイレクトアクセスできる(高 速) – btrfs • Solaris ZFSの対抗馬的なモダンFS(スナップショットなど) • 非常によろしい、らしいけど商用で使うにはまだ時期尚早(?) – 他にも • JFS, ReiseFSなども • btrfs, NILFS2, Cephなど、最近はFSまわりは活発 22
  • 23. ジャーナリングファイルシステム • ext3, ext4, XFS… – ジャーナリングファイルシステム • ファイルシステム上のメタデータを書き換え処理 (トランザクション)単位で管理・保持する事が できる • 書き換え中に電源断や処理中断が発生し、ファイ ル構成情報に矛盾が発生した場合でも、素早く検 査/修復処理を行うことが出来る – ext2にはジャーナルがない 23
  • 24. ext3のジャージャーナリング方式 • 基本的には3種類 – writeback • メタデータのみをジャーナリング対象とする • ジャーナリング順は保障されない • ファイル消失は防げるが、データ消失リスクはある – 全て更新か、全く更新が無いか、しか判別できない • 最も高速 • いつの間にかデフォルトになった模様 – orderd • メタデータのみをジャーナリング対象とする • ジャーナリング順を保障する • writebackよりも若干信頼性が高い – journal • 実データもジャーナリング対象とする • fsync() や fdatasync() を発行した所までは完全に保障される • 最も低速 24
  • 25. ext系チューニング • 代表的なチューニング項目(マウントオプション) – dir_index • DBのインディックスとほぼ同じ働き • ファイル数が多すぎるとパフォーマンスの逆転現象が起こりうる – noatime • 最終アクセス時刻の記録を止める – 作成時刻、更新時刻、アクセス時刻 • 更新時刻がアクセス時刻を追い越す罠 – 特定のアプリケーションで不具合あり – relatime(kernel 2.6.20~) • 更新時刻(mtime)やファイル属性の修正時刻(ctime)が、最終アクセ ス時刻を追い越したときに、atimeを修正する • noatimeよりもお勧め、デフォルトで有効になるディストリが多い – discard • ext4,SSD用オプション • RHEL5.6 + ext3 では使えた • ATAデバイスにはTRIMコマンド、SCSIデバイスにはUNMAPコマン 25 ドを発行する
  • 26. RAIDのおはなし 一般 26
  • 27. RAIDの話 • RAID – ハードウェアRAID • いわゆるカードもの PCI-Express接続とか • マザーボードの機能として付いてるものも – 廉価版は、ソフトウェアRAIDな場合も・・・ • 専用のコントローラーが処理する • ライトキャッシュ(BBWC)が付いている事が結構あ る – ソフトウェアRAID • 一般的にはOS側で束ねるRAID • CPUが処理する 27
  • 29. BBWC • Battery Backed Write Cache – バッテリーバックアップ付きライトキャッ シュ • RAIDコントローラーに付けるキャッシュ装置 • 耐障害性を維持しつつ、書き込み性能を上げる事 が出来る • RAIDカードとHDD本体の間で働く • エントリークラスで128~512MB程度はある – キャッシュに乗り切るサイズであれば、OS 側からfsync() などの同期書き込みが実行さ れても、キャッシュに高速に保存できる(その 29 後よしなに実HDDに書かれる)
  • 30. BBWC • その後よしなに実HDDに書かれる? – よしなに、とは • デバドラに依存するが • アクセス効率が良くなるように • ある程度まとまった単位で書かれる – ある程度まとまった単位 • シーケンシャルに読める可能性が高い • Diskの回転、つまりコミット待ち発生を抑え ることが出来る 30
  • 31. BBWCを使うとき気にすること • Q. BBWCを使う時、HDD自体のキャッシュはどう なるの? • A. HDD側のキャッシュはOFFにしておくこと – RAIDコントローラーのコマンドでOFFに出来る – arcconfやBIOSなどでどうぞ • Q. なんでHDD側のキャッシュはOFFの方がいい の? • A. HDD側のキャッシュにはバッテリー乗っていない よ! キャッシュ書ききる前に電源落ちたら、他も巻き 31
  • 33. ストライピングサイズ • ストライピングサイズ/チャンクサイズ – 複数のDiskにストライプする際のデータ 分割単位、のこと – 通常4kb~1MB程度の範囲 33
  • 34. ストライピングサイズ • ストライピングサイズが小さすぎると・・・ – 1ブロックが複数ディスクに跨って配置されてしまう – 1ブロックを読み出すのに、複数アクセスする必要が ある – 複数アクセスを同時に行うから、速いのでは? • 1HDD / s あたりのランダムアクセスできる回数には上限 がある • スループットが下がる • 1ブロックの読み込みは、1アクセスで済ませるべき • ストライピングサイズが大きすぎると・・・ – こんどはシーケンシャルが遅くなる 34 • 分散読み込みできないから
  • 35. ストライピングサイズの勘所 • 要はどの数値にするのがいいか • 残念ながら要件次第 – シーケンシャルアクセスが多い • 若干小さめに取る – 例えば、4KB, 16KBなど – ランダムアクセスが多い • ブロックサイズより大幅に多く取る – 例えば256KB, 512KBなど 35
  • 37. おわりに • 他にも考えることは、もっともっとあります – RAIDレベルは?NCQは?キューザイズは?etc… • なので – H/Wを良く知ろう • 限界性能を知る – Blogのコピペも良いけど、”何故そうなのか”も考 えてみる • ドラスティックにパフォーマンスに変化が出るような ものには、得てしてデメリットもあるものです 37
  • 38. まとめ • 慣れないことを本番環境でいきなりやるのはつらい • 懐具合と相談すれば、わりかしそれっぽい環境はできる • もちろんどう考えてもできないものある • 特にLinux周りのスキルはコストをあまりかけずとも習得 しやすい • というわけで、主に自宅で(←SAN友の趣旨)検証し てみましょう 38