資料 - SqlWorld

Report
ファイル共有再入門
鮫島 隆治(黒龍)
今日のアジェンダ
SQL Server2012の新機能のおさらい
SQL Server、Hyper-VでのSMB接続サポート
SMB/CIFSについて
SQL Server2012の新機能のおさらい
SQL Server AlwaysOn による可用性の向上/DR(災
害復旧)の実現
データベース エンジンの機能強化
開発生産性の向上
DWH(データ ウェアハウス)関連の機能強化
パワーアップしたSQL Server2012の高可用性機
能
SQL Server AlwaysOn
AlwaysOn Availability Group
AlwaysOn フェールオーバー クラスター インスタンス
Windows Server Core のサポート
AlwaysOn Availability Group
AlwaysOn Availability Group(可用性グループ)は今まで提供
されていたWSFC(Windows Server フェールオーバー クラス
タリング)や DBM(データベース ミラーリング)、ログ配布、
レプリケーション機能などをより使いやすく強力に進化させた機
能で容易な設定で可用性を向上させることができます。
AlwaysOn Availability Group
共有ストレージ不要
ローカルにデータ保持するため共有ストレージ(エントリー
レベルで数百万~)が不要。
フェールオーバー
共有ストレージ
AlwaysOn Availability Group
4台のセカンダリサーバーサポート
今まではセカンダリサーバーが1台だけだったためフェール
オーバーを主眼に置くとDR構成がとれずDR構成のために
非同期モードにするとデータロストのリスクが増加してしま
うため他のテクノロジーとの組み合わせが必要でした。
今までのDBMでの基本構成
同期モード
事前コミット
プリンシパル
コミット
ウィットネス
ミラー
応答性が必要なためDRとしては使用できない
AlwaysOn Availability Group
WFCSで構成
遠隔地へは非同期モードやログ配布を使用
セカンダリ
プライマリ
スタンバイ
AlwaysOn Availability Group
柔軟な構成
東京
プライマリ
非同期によるセカンダリとの同期はDRとして使用可能。
大阪
アクティブセカンダリ
沖縄
監視サーバー不要
DBM構成では自動フェールオーバーのために監視
サーバーが必要となっていましたが不要となっています。
セカンダリ
セカンダリ
セカンダリ
ほかにも・・・
セカンダリサーバーからのリアルタイム読み取りが可能
DBMではスナップショット作成段階での過去データ参照
だったがリアルタイムの読み取り、バックアップなどに活用
可能
tempdbをローカルサーバーにインストール可能
今までのWFCSと違いローカルにtempdbを持つことができ
るためパフォーマンスが良くなっています。
注意点
AlwaysOn Availability GroupはEnterpriseエディション
のみ。また、アクティブセカンダリ構成で使用する場合はラ
イセンスも必要。(従来通りDBM構成でホットスタンバイ
させているだけならライセンスは1台分のみ)
AlwaysOn フェールオーバー クラスター インスタンス
AlwaysOn フェールオーバー クラスター インスタンス
とはWSFC上にインストールされたSQL Serverのこと
を指します。
今までのフェールオーバークラスタリングでは共有スト
レージが必要だったのがSQL Server 2012からSMB接
続(共有フォルダー)へのデータベース配置が可能にな
りました。
従来は25インスタンスだったのが50インスタンスに。管理
も容易になり容量面でのメリットも。
Server Coreへのインストールをサポート
GUIが不要なServer Coreでは必要な修正プログラムが
50%~60%抑えられるため再起動の回数も少なくなる。
データベース エンジンの機能強化
カラム ストア インデックスによる大幅な性能向上
BI系関数の追加
T-SQLの強化
開発生産性の向上
SQL Server Data Tools による開発生産性向上
DWH(データ ウェアハウス)関連の機能強化
DQS(Data Quality Services)による容易なデータ品
質の向上、Power View による容易なデータ分析レポー
トの作成
SQL Server、Hyper-VでのSMB接続サポート
SQL Server 2012からSMB接続(共有フォルダー)へ
の配置が可能となりました。
後述しますがSMBはバージョン改定により性能向上が図
られておりWindows Server 2012のSMB3.0で飛躍的
に性能が向上しました。そしてWindows Server2012
でのHyper-Vではライブマイグレーションでも使用でき
るようになりました。そうしたタイミングもあってSQL
ServerでもSMB接続への配置が可能になったものと思
われます。
SQL Server 2012 で使用するSMBのバージョンによる
違い
サーバ側OS
ve
r
機能メリット
Windows Server 2008
2.
0
従来のバージョンの SMB よりもパフォーマンスに優れています。
持続性が高いため、一時的なネットワーク障害もスムーズに復旧できま
す。
Windows Server 2008
R2
2.
1
大きい MTU をサポートするため、SQL のバックアップや復元など、
大規模なデータ転送が高速化されます。 この機能を使用するには、ユー
ザーが機能を有効にする必要があります。
大幅なパフォーマンス向上。特に、SQL OLTP スタイルのワークロー
ドに対して効果的です。 パフォーマンスを向上するには、修正プログラ
ムを適用する必要があります。
Windows Server 2012
RC1
3.
0
ファイル サーバー クラスター構成の SQL DBA またはファイル サー
バー管理者に必要な、ファイル共有の透過的フェールオーバー (管理者
の操作が不要でダウンタイムが発生しないフェールオーバー) をサポー
トします。
複数のネットワーク インターフェイスを同時使用する IO をサポートし
ます。また、ネットワーク インターフェイスの障害に対する耐性も優れ
ています。
SMB/CIFSについて
Server Message Block (SMB) とはWindowsファイル
共有として知られるプロトコルでファイル共有、プリン
タ共有、RPCなどに使用されるプロトコルです。
単体では認証付きのリソースアクセス用のプロトコルと
なっておりNetBIOSや"Network Neighborhood"プロ
トコルといった周辺機能とともに利用されています。
SMBの歴史
もともとはIBMの方が設計したファイルアクセスをネッ
トワーク上に対応させる機能をマイクロソフトが機能追
加してLan Manager(ドメイン機能やADの前身?)に
組み込まれた機能です。その
後Windows for WorkgroupやWindows NTなど
Windowsの版を追うごとに機能追加をされながら現在も
進化を続ける(Windows Server 2012ではSMB3.0)
プロトコルです。
大まかな機能
名前解決に関する機能(NetBIOS over TCP/IP)
(RFC 1001、RFC 1002等参照)
リソースアクセスに関する機能(SMB)
リソース照会に関する機能(Browser、Network
Neighborhood)
一般的な通信の流れ
NetBIOSに参加するマシンはネットワーク参加時に自身の
NetBIOSマシン名をブロードキャストします。
ネットワーク内にはマシンの一覧を管理するBrowserサービ
スを実行するマシンが存在しておりクライアントの一覧を管
理しています。
クライアントはシャットダウンなどネットワークを離れる際
にマシンの一覧からの破棄をリクエストしますが様々な要因
により完全な管理は出来ないため定期的な確認によって自律
的にふるまうように機能します。
Browserサービスはあくまで一覧を管理するのみで名前解決
の方法は別途NBNS(NetBIOS Name Service)によって
行われます。
NBNS(NetBIOS Name Service)
SMBで対象となるコンピュータにアクセスするためには
NetBIOSの機能を使って名前解決を行います。
NetBIOSでの名前解決方法ですがネットワーク内のマ
シンに対してブロードキャストで問い合わせを行います。
受け取ったNetBIOSの参加PCは自分宛の問い合わせで
あった場合は応答することで名前解決が行われます。
ブロードキャストを用いる関係上サブネットをまたがる
PCの名前解決はできないこと、ブロードキャストを用い
ることからネットワーク帯域を圧迫するといった問題が
あるものの容易に利用できるため今も一般的に利用され
ています。
ブロードキャストでのイメージ
おれじゃない
Server2はい
るかーい?
遅いのと通信量が多く帯
域を圧迫する
Server1
おれです!
Server2です
おれも違う
!!
おれじゃない
Server2
Server3
WINS(Windows Internet Name Service)
前述であげたようにブロードキャストでの名前解決には
サブネットをまたがった名前解決やネットワーク帯域の
問題があったためNetBIOS over TCP/IPでの名前解決
用の仕組みとしてWINSが生まれました。
WINSは名前解決のサービスを提供するサーバでWINS
のある環境ではクライアントとサーバがpeer to peerで
通信することで名前解決を行います。
ActiveDirectoryの環境では
AD環境ではDDNSと統合されておりDNSを使用した
名前解決によってIPを取得します。
また、このころ導入されたDirect Hosting SMBという
単一のポート待ち受け機能によりNetBIOSに依存しな
いSMBの利用が可能となりました。
これらの機能追加されたSMB機能はCIFS(Common
Internet File System)としてドキュメント公開されま
した。
またlmhostsファイルというテキストファイルに記載さ
れたNetBIOS名とIPのリストも使用されます。
余談~SMB関連のポートについて~
DNS:53
NBNS(NetBIOS Name Service):137
Browser Service:138
NBSS(NetBIOS Session Service):139
Direct Hosting SMB:445
リソースのアクセス
通信の対象となるIPが判明した後はNBSSもしくは
Direct Hosting SMBによる通信を開始してセッション
を確立させるところから始まります。
その後ネゴシエーションと呼ばれるサーバー、クライア
ントの機能レベルのすり合わせが行われどういった認証
を行うかなどが決定されます。その際の機能レベルのこ
とをSMBの用語でダイアレクト(方言)といいますが歴
史の長いSMBの相互接続性において重要な機能となって
います。
認証について
リソースアクセスにおいて認証が行われるのですがPCの
環境によっても左右されるので併せて紹介します。
簡易ファイル共有
XPHomeなどで有効にできる簡易ファイル共有ですが簡易
ファイル共有において認証はすべてGuestアカウントとして
行われます。
詳細なファイル共有のリソースレベル認証
簡易ファイル共有でない場合は共有させるポイントごとにア
クセス制限をかけることができます。最終的にアクセスする
ファイルがFATではなくNTFS等の認証機構のあるファイル
システムであった場合はさらにACLに従ってアクセス制限が
かかります。
ブラウザー機能
ここまでがファイルを開く部分のお話になります。
(\\サーバー名\<ファイル名>としてファイルを開いたイ
メージ)
ここからはもうひとつの重要な機能であるブラウザー機
能について説明します。
NBNS、NBSSによる機能ですがリソースを使うための
機能になります。対してブラウザー機能ですが使用でき
るリソースを見せるための機能になります。
接続の流れ
NetBIOSにてマスターブラウザーがコンピューター(プリ
ンター等含む)の一覧を保持しており定期的にブロードキャ
ストで存在を知らせてきます。クライアントはマスタブラウ
ザに対してコンピューターの一覧を照会します。(XPで
ネットワーク共有を開いた状態)
Windowsであればエクスプローラーから対象となるコン
ピューターを選択することで対象となるサーバーのIPC$と
いう特殊な共有ポイントへの接続、認証が行われます。この
時Windowsクライアントはログインに使用したアカウント
でログインしようとします。(簡易フォルダ共有であったり
Sambaなど他のクライアントの実装ではこの限りではな
い)
こういった動作があるため見えないがアクセスできたり見え
るのにアクセスできないといった事象が発生します。
そしてSMB2.0へ
徐々に機能追加されていたSMBですがいくつかの不満は
抱えつつ長期にわたり使用されていました。とくにVPN
など遅延のあるネットワークで使用した際の性能低下や
ワイアレスなど不安定なネットワークでの安定性の低さ
から改善が求められていました。
(サードパーティからもCIFSアクセラレータやWANアク
セラレータといった製品が出たりしていました)
そしてWindows VistaからSMB2.0として機能アップ
が図られました。(サーバーはWindows Server 2008
から)
SMB2.0での改善点
SMB2.0では肥大化していたSMBプロトコルの見直し
が行われ100以上あったコマンドも19と激減しました。
複数コマンドをまとめることでサーバー、クライアント
間のやり取りが激減。
より大きなバッファによる性能向上。
プロトコル定数値の見直しによる同時オープン数等の性
能向上。
永続性ハンドルの導入によるネットワーク切断時の接続
継続。
シンボリックリンクサポート。ファイル、フォルダーの
属性キャッシング等々の機能が追加されました。
向上するセキュリティ・低下する互換性
SMB2.0によってプロトコルはシンプル(ファイルは
Unicodeベースのみ、コマンドの数も減り対応クライア
ントはVista以降なので確認の工数も低減)になりセキュ
リティも向上したのですが対応しない古いクライアント
との互換性はやむを得ず低下することになりました。
これからもセキュリティの観点から問題のある認証方式
や機能はデフォルトで利用されなくなるのでこの傾向は
続いていくものと思われます。
よくある現象として
古いNASとの認証が通らない
NTLMv2が用いられるようになったため。設定で制限を緩和すること
で接続は可能。(非推奨)
対象となるPCにつながらない
guestアカウントが停止されているため、ブラウザサービスのguestアカ
ウントへの応答が停止されているため。guestアカウントの有効化やブ
ラウザ機能のセキュリティレベルを落とすことで接続は可能。(非推
奨)
もしくはnet useコマンドで対象PCのIPC$への接続を明示的に指定す
ることで回避する、guestでつなぎに行くクライアント(Sambaを使用
したものなど)であれば同名の古いPCで接続を登録しておくといった
回避策も状況によっては有効。
速度が遅い
ネットワークチューニング機能による通信バッファサイズによってバッ
ファサイズを増やす、通信できずタイムアウト、サイズを戻すといった
状況に陥っているため。チューニング機能を停止することで回避可能。
SMB2.1によるさらなる機能向上
クライアント oplock リース モデル
大きい MTU のサポート
クライアント コンピューターのエネルギー効率の向上
クライアント oplock リース モデル
SMB で広範に使用されている便宜的ロック (oplock) を使
用して、クライアント コンピューターでデータおよびファイ
ルのハンドルをキャッシュできます。便宜的ロックは
NTFS のファイル セマンティクスに何年も前から存在し、
主にネットワーク経由でのファイル アクセスでのメリットの
ために使用されていました。便宜的ロックを使用すると、プ
ロセスは可能であればファイルをロックできます。
今までもあったのですがハンドル毎のロック保持だったため
アプリケーションによる複数回オープンや別アプリからの
オープンにより容易に失効して効果的に利用されていません
でした。SMB2.1の新しいモデルではクライアント毎となり
キャッシュ機会が増えることで性能向上に寄与します。
大きい MTU のサポート
データ転送の単位が64kから1MBに増えることで10Gb
Ethernetなどの環境でより効率的に帯域を使用できるよ
うになりました。(デフォルトではオフ)
クライアント コンピューターのエネルギー効率の向
上
今まではSMBでファイルをオープンしているときはス
リープ電源状態に入れませんでした。SMB2.1からは多
くのシナリオでスリープ電源状態へと入ることが可能に
なりました。
対応しているバージョンはWindows 7、Windows
Server 2008 R2からとなっています。
SMB3.0(SMB2.2)
SMB 透過フェールオーバー
SMB スケールアウト
SMB マルチチャンネル
SMB ダイレクト
サーバー アプリケーションのパフォーマンス カウンター
パフォーマンスの最適化
SMB 用 Windows PowerShell コマンドレット
SMB 暗号化
SMB ディレクトリ リース
SMB 透過フェールオーバー
クラスター化されたファイル サーバーにあるノードの
ハードウェアやソフトウェアの保守作業を行うときに、
そのファイル共有にデータを格納しているサーバー アプ
リケーションを中断する必要がありません。また、クラ
スター ノードでハードウェアまたはソフトウェアの障害
が発生した場合に、SMB クライアントが別のクラス
ター ノードに透過的に再接続できます。このとき、その
ファイル共有にデータを格納しているサーバー アプリ
ケーションを中断する必要はありません。
SMB スケールアウト
クラスターの共有ボリューム (CSV) Version 2 を使って、
ファイル サーバー クラスター内のすべてのノードから同
時にデータ ファイルにアクセスして直接入出力できる
ファイル共有を作成できます。これにより、ネットワー
ク帯域幅を効率よく利用しながらファイル サーバー クラ
イアントの負荷分散ができるため、サーバー アプリケー
ションのパフォーマンスを最適化できます。
SMB マルチチャンネル
SMB2.2 クライアントと SMB2.2 サーバーの間に複数
のパスがある場合に、ネットワーク帯域幅を集約し、
ネットワークのフォールト トレランスを高めることがで
きます。これにより、サーバー アプリケーションは利用
できるすべてのネットワーク帯域幅をフル活用すると共
に、ネットワーク障害に対して高い回復力を維持するこ
とができます。
SMB ダイレクト
RDMA 機能を搭載し、遅延がきわめて小さく、CPU を
ほとんど使用せずに、最高速度で動作できるネットワー
ク アダプターが使用できます。Hyper-V や Microsoft
SQL Server などのワークロードについては、この機能
によってリモート ファイル サーバーをローカル スト
レージのように利用することができます。
サーバー アプリケーションのパフォーマンス カウン
ター
SMB の新しいパフォーマンス カウンターでは、スルー
プット、待ち時間、1 秒あたりの I/O (IOPS) に関する
情報を共有ごとに詳細に得ることができ、データが格納
されている SMB 2.2 ファイル共有のパフォーマンスを
解析できます。このカウンターは、Hyper-V や SQL
Server など、リモート環境のファイル共有にファイルを
格納するサーバー アプリケーション向けに設計されてい
ます。
パフォーマンスの最適化
SQL Server の OLTP など、サーバー アプリケーショ
ンで生じる I/O は、小規模なランダム読み取り/書き込み
が一般的です。それに合わせて、SMB 2.2 クライアン
トおよび SMB 2.2 サーバーが最適化されました。加え
て、大きな最大転送単位 (MTU) が既定で有効にされて
いるため、SQL Server データ ウェアハウス、データ
ベースのバックアップと復元、仮想ハード ディスクの展
開とコピーなど、大規模なシーケンシャル転送のパ
フォーマンスが大幅に向上します。
SMB 用 Windows PowerShell コマンドレット
SMB 用 Windows PowerShell コマンドレットを使う
と、管理者がコマンド ラインからエンド ツー エンドで
ファイル サーバーのファイル共有を管理できます。
SMB 暗号化
SMB データをエンド ツー エンドで暗号化し、信頼でき
ないネットワークで発生する傍受からデータを保護でき
ます。新たに展開コストが発生することはなく、イン
ターネット プロトコル セキュリティ (IPsec)、専用ハー
ドウェア、WAN アクセラレーターも不要です。SMB
暗号化は共有ごとでも、ファイル サーバー全体でも構成
できます。また、信頼できないネットワークをデータが
通過するさまざまな場面で有効にできます。
SMB ディレクトリ リース
ブランチ オフィスのアプリケーションの応答時間を改善
します。ディレクトリ リースを使うと、保存期間の長い
ディレクトリ キャッシュからメタデータを取得するた
め、クライアントからサーバーへのラウンドトリップが
減少します。サーバーにあるディレクトリ情報に変更が
あるとクライアントに通知されるので、キャッシュの一
貫性を維持できます。ホーム フォルダー (読み込み/書き
込み可、共有なし) とパブリケーション (読み取り専用、
共有あり) のどちらにも対応しています。
SMB ダイレクト
SMBダイレクトは随分と昔にInfinibandのために実装
過程にあったものが一時キャンセルされていたものが復
活したものだと思われます。InfinibandもWindows
Server 2012の普及とともに広がっていくと思われるの
で低コストで使用できる日も近いと思われます。
SMB3.0betaでのデモ
SMBダイレクトに関して面白い内容がTechnetのブログ
にあったので紹介します。
Jose Barreto‘s Blog ~Windows Server 2012 Beta with
SMB 3.0 – Demo at Interop shows SMB Direct at 5.8
Gbytes/sec over Mellanox ConnectX-3 network adapters
~
http://blogs.technet.com/b/josebda/archive/2012/05/0
6/windows-server-2012-beta-with-smb-3-0-demo-atinterop-shows-smb-direct-at-5-8-gbytes-sec-overmellanox-connectx-3-network-adapters.aspx
SMB3.0betaでのデモ
Window Server 2012betaのSMB3.0で10Gb
EthernetとInfinibandのQDR、FDRを比較した内容
に関する投稿で
”単一ネットワークで毎秒5.8ギガとかwwwギガビット
じゃねぇしギガバイトだしwwwマジかwwwおよそ毎
秒1DVDとかwwwワロスwww“みたいな内容でした。
Localでのアクセス5,808MB/secに対してInifiniband
の54Gbpsで5,792MB/secと驚異的な速度になってま
す。(CPU負荷は4.8%でローカルよりも低い)
iSCSIを超えた?
各種機能を見ていると用途によってはiSCSIよりも容易
で高機能なのでこれからもウェイトはさらに増していく
ように思われます。とくにSMBマルチチャンネルやクラ
イアントキャッシュ、SMBダイレクト等の機能があるた
めプロトコルオーバヘッドがあるにせよ帯域を十分活用
できるSMB3.0は要注目のプロトコルだと思います。
ブートドライブとして使いたい場合などはiSCSIでないと無
理。(Hyper-Vにすればいいですが)
余談ですが組み込みCIFS製品の移植やらで開発中のブート
シーケンスでSMBからブートみたいなことはやったことが
あるのでBIOSに乗っかれば十分可能です。
Windows Server 2012 RTM!!
実際に提供され始めるのが9/4~とのことなのでRC1で
学習して来る本番に備えましょう。
ありがとうございました

similar documents