背景
私のインフラストラクチャには、とりわけ、3つのESXi 5.5サーバーがあり、QLogic QLA200アダプターを使用して、HP StorageWorks 2 / 8qスイッチを介して、光学経由でHP MSA1000 SAN(すでに10年前の鉄)に接続されています。 もちろん、ストレージは非常に生産的ですが、ボリュームも非常に控えめです。 仮想化は現在の傾向であるため、ブロックアクセスを備えた光学系を介して接続された、非常に大規模なストレージを取得することが非常に望まれていました。 なぜそれがブロック状であるのかは説明しません-このトピックのホリバーはノアの箱舟から始まりましたが、これはこの記事の主題には当てはまりません。 よくあることですが、予算ではブランドソリューションを購入することすらできないため、「クレイジーハンド」プログラムのヒーローにしかなれません。
それほど長くない研究の結果、SCSTの目標は次の理由で選ばれました。
- 高性能
- 安定性
- Centos(Linuxサーバーの標準)にインストールする機能
- QLogic FCアダプターのサポート
- VAAIサポート
次に、ハードウェアをピックアップする必要がありました。 ビンでは、6個のバスケットを備えた2Uサーバー、4個の3TBドライブ(下位のもの、2個はWD Green)、QLogic 2460 FCアダプター(
SCSTはQLogic 22xx / 23xx / 24xx / 25xx / 26xxアダプターをサポート )が
見つかりました 。
Centos 7 + FC SCSTバンドルの既製のマニュアルを検索しても何も得られなかったので、かなり長い間情報を1つずつ収集する必要がありました。 その結果、すべてが判明し、新しいディスクを購入する準備ができて満足しています。
素朴にお金を待っている間、私は私のような同じ困惑した人々のためにこのハウツーを書いています。 さあ、行こう!
アクション
Centos 7のインストールと基本構成は、最小アセンブリで実行します(これは私の好みです。任意のアセンブリをインストールできます)。 誰もが独自の「基本設定」を持っているので、詳細には触れません。 更新することを忘れないでください:
[root@localhost ~]
FCアダプターの名前とそのRISC IDを確認します。
[root@localhost ~]
次のようなものが得られます。
[ 1.881084] qla2xxx [0000:05:04.0]-001d: Found an ISP2422 irq 24 iobase 0xffffc90001e06000. [ 2.901460] qla2xxx [0000:05:04.0]-00fb:1: QLogic QLA2460 - PCI-X 2.0 Single Channel 4Gb Fibre Channel HBA.
RISC IDはISP2422で、モデルはQLogic QLA2460です。
次に、
ここから QConvergeConsoleCLIユーティリティとアダプターの最新ファームウェアをダウンロードしてインストールする必要があり
ます 。 .BINファームウェアファイルを抽出し、RISC IDに従って名前を変更し(下の表を参照)、サーバーの/ lib / firmwareに配置します。 ほとんどの場合、すでにそのようなファイルがあるので、既存のファイルを置き換えるだけです。
RISC ID-ファームウェアISP 21XX-ql2100_fw.bin
ISP 22XX-ql2200_fw.bin
ISP 2300-ql2300_fw.bin
ISP 2322-ql2322_fw.bin
ISP 24XX-ql2400_fw.bin
ISP 25XX-ql2500_fw.bin
ISP 2031-ql2600_fw.bin
ISP 27XX-ql2700_fw.bin
私の場合、ql2400_fw.bin
アダプターのファームウェアの更新:
[root@localhost ~]
最新のドライバーQLogic SCSTをダウンロードします。
[root@localhost ~]
カーネルの後続のアセンブリとsvnに必要なパッケージをインストールします。
[root@localhost ~]
SCSTソースをダウンロードします。
[root@localhost ~]
SCSTディレクトリで、QLogic SCSTドライバーへのソフトリンクを作成します。
[root@localhost /]
さらに、SCST開発者の推奨に従って、カーネルにパッチを適用する必要があります。
新しいユーザー環境で新しいカーネルをアセンブルします。
[root@localhost /]
パスワードなしでyumおよびyum-builddepを使用する権利を付与します。
[root@localhost /]
新しいユーザー環境に移動します。
[root@centos-test /]
開発者によって用意されたスクリプトを起動します。
[builder@localhost /]
新しいカーネルをインストールします。
[builder@localhost /]$ su -c 'rpm -ivh --force /home/builder/rpmbuild/RPMS/x86_64/kernel-*.rpm'
再起動:
[builder@localhost /]$ su –c reboot
現在のカーネルを確認します。
[root@localhost ~]
すべて問題なければ、先に進みます。 デフォルトのqla2xxxカーネルモジュールをアンロードしてブラックリストに追加します。
[root@localhost /]
SCSTビルドモードをリリースに設定します。
[root@localhost /]
必要なカーネルモジュールを収集しましょう。
[root@localhost scst]
すべてがうまくいったことを確認します。
[root@localhost ~]
インストールされているモジュールの完全なリストを確認できます。
[root@localhost ~]
[root@localhost ~]
それらをすべてカーネルに追加します。
[root@localhost ~]
このようなものがdmesgに表示されるはずです(バージョンから例を示します)。
[10753.981044] [21513]: scst: SCST version 3.1.0-pre1 loaded successfully (max mem for commands 709MB, per device 283MB) [10753.981051] [21513]: scst: Enabled features: TRACING [10753.982152] [21519]: scst: Management thread started [10754.024379] qla2xxx [0000:00:00.0]-0005: QLogic Fibre Channel HBA Driver: 8.04.00.05.2.2-SCST.03-kp. [10754.030864] [21527]: qla2x00t: Initializing QLogic Fibre Channel HBA Driver target mode addon version 3.1.0-pre1 [10754.032397] [21527]: qla2x00t: Target mode driver for QLogic 2x00 controller registered successfully [10754.032409] [21527]: scst: Target template qla2x00t registered successfully [10754.038638] [21528]: scst: Virtual device handler vdisk_fileio for type 0 registered successfully [10754.038647] [21528]: scst: Virtual device handler vdisk_blockio for type 0 registered successfully [10754.038653] [21528]: scst: Virtual device handler vdisk_nullio for type 0 registered successfully [10754.038658] [21528]: scst: Virtual device handler vcdrom for type 5 registered successfully [10754.044786] [21529]: scst: Virtual device handler "scst_user" registered successfully [10754.048905] [21530]: scst_user: Cleanup thread started [10754.052682] [21531]: scst: Device handler "dev_disk" for type 0 registered successfully [10754.052691] [21531]: scst: Device handler "dev_disk_perf" for type 0 registered successfully
qla2xxxカーネルモジュールがqla2xxx_scstで置き換えられるように、初期初期化(initrd)のためにRAMディスクを再構築します。
[root@localhost ~]
scstadminをインストールします。
[root@localhost /]
次に、ファイル/etc/scst.confを作成する必要があります。私の例を示します。
HANDLER vdisk_blockio { DEVICE disk1 { filename /dev/sdb } } TARGET_DRIVER qla2x00t { TARGET ::::::: { enabled 1 LUN 0 disk1 } }
説明:
HANDLER vdisk_blockio-ハンドラーの選択。私の場合、ブロックアクセスが必要でした。ファイルアクセスが必要な場合は、vdisk_fileioがあります。
ファイル名/ dev / sdb-ターゲットのディスク
ターゲットXX:XX:XX:XX:XX:XX:XX:XX:XX-Xの代わりに、FCアダプターのWWNを入力します
WWNを確認できるコマンドの例:
cat /sys/class/scsi_host/host*/device/fc_host/host*/node_name
構成ファイルを使用します。
[root@localhost scst]
さて、おそらくターゲットがリロードされると、この全体が自動的に開始するようにしたいでしょう。
SCST自体の自動起動をオンにします。
[root@localhost /]
起動にカーネルモジュールを追加します。
[root@localhost /]
最後に、構成のアプリケーションをrc.localに追加します。
[root@localhost /]
すべてが正しく行われた場合、サーバーを再起動した後、次を実行します:
[root@localhost ~]
次のようになります:
Collecting current configuration: done. -> Checking configuration file '/etc/scst.conf' for errors. -> Done, 0 warnings found. -> Applying configuration. -> Done, 0 change(s) made. All done.
これでターゲット設定が完了しました。 以下にいくつかの便利なメモを示します。
重要! FCスイッチが使用されている場合は、FCスイッチでゾーニングを構成することを忘れないでください。そうしないと、イニシエーターに新しいターゲットが表示されません。
また、ESXiの場合、ターゲットを設定した後、およびその再起動の場合、すべての開始ホストを再起動する必要があります。そうしないと、ドライブが取得されません。
それでもこのような小さなパフォーマンスノート。 CentOS 7では、fioを使用して、iodepth = 1でレコードあたり84 iopsと平均レイテンシー12ミリ秒を測定しました。 これは、実際にはWD Greenにとって悪くありません。
2016年10月5日更新! 自分の記事に従ってターゲットを上げるつもりでしたが、カーネルパッチ中にエラーが発生しました:カーネルバージョンに一致するput_page_callbackパッチが見つかりませんでした。
SCSTによって開発されたため、最新バージョン3.3でカーネルにパッチを適用する必要がなくなりました。 そのため、カーネルの再構築に関するセクションはスキップできますが、代わりに次の手順を実行してください。
[root @ localhost scst]の後#ln -s ../scst-qla2xxx/drivers/scsi/qla2xxx qla2x00t_git:
[root @ localhost scst] yum isntall -y bzip2 rpm-build
[root @ localhost scst] make rpm
その過程で、特定のPerlモジュールの欠如に関連するエラーが表示される可能性が高くなります。それをグーグル検索する必要があり、すぐに最初のページに解決策があります。
その後、RPMをインストールし、このポイントから続行します。
[root @ localhost /]#echo blacklist qla2xxx> /etc/modprobe.d/blacklist-qla2xxx.conf