2012-12-20 [長年日記]

_ [Linux] Ubuntu Desktop 12.04 を Fujitsu PRIMERGY TX100 S3p へインストール (LSI Software RAID (megasr)を使用)

某所からのリクエストで、Fujitsu PRIMERGY TX100 S3pでUbuntu Desktop 12.04を使いたいから検証よろしく、とのことでテストしてみた。オンボードのLSI Software RAIDを使ってRAID 1構成(3.5インチのSATA HDDを2台)が必須らしいので、dmraidやmdadmなどを使うのはなしだそうです。あとディスクに何かあった場合にemailでalertを出してほしいとのことでした。

まずは準備としてUSB接続の外付けDVD-ROM(or CD-ROM)ドライブが必要。なぜかというとすべてのSATAデバイス(HDDも光学ドライブも)は同じコントローラーの下にぶらさがってるので、megasrドライバを使うためにahciドライバをはずすと内蔵ドライブへアクセスできなくなるため。Intel C600系のチップセット使ったマシンだと、光学ドライブの使うSATAとディスクが使うSCUは別なのでこの問題は起こりません。あともちろんだけど、Ubuntu 12.04向けのmegasrドライバをどっかから手に入れておく必要あり。

というわけで、セットアップ手順は以下(かなり面倒くさい)。

  1. Ubuntu Desktop 12.04のインストールCDを起動。オプションにnodmraidを指定してインストール開始。
  2. 最初の画面でContinueボタンを押す前にCtrl+Alt+F1でコンソールに移動。
  3. megasrドライバを(USBメモリとかネットワークとか使って)TX100S3pにコピー。
  4. AHCIドライバをはずす("0000:00:1f.2"はPCIのスロット番号。lspciコマンドとかで調べておく)。
    # echo "0000:00:1f.2" > /sys/bus/pci/drivers/ahci/unbind
  5. megasrドライバを組み込む。この時点でMegaSRデバイスだけがSCSIディスクデバイス(sda)として見えるはず。
    # mkdir /lib/modules/3.2.0-29-generic/updates
    # cp megasr.ko /lib/modules/3.2.0-29-generic/updates
    # depmod -a
    # modprobe megasr
  6. Ctrl+Alt+F7でインストール画面に戻ってインストールを継続。partitioningのところではMegaSRデバイスが見えてるはず。
  7. インストールが完了したら、マシンをシャットダウン。
  8. Power offしたら片方のディスク(Disk 2)のSATAケーブルを引っこ抜く。
  9. Power onしてUbuntuを起動。
  10. Ubuntu 12.04のカーネルソースをダウンロード。
  11. カーネル設定で"CONFIG_SATA_AHCI=y"を"CONFIG_SATA_AHCI=m"へ変更。menuconfigとかの場合は、"Device Drivers" -> "Serial ATA and Parallel ATA drivers" -> "AHCI SATA support"で"*"を"M"へ変更。
  12. カーネルを再構築。やり方はUbuntuのドキュメントなり、"Ubuntu kernel rebuild"なんかで検索すればいろいろでてくるのでそれを参照。なぜこれが必要かというと、Ubuntu 12.04からはahciドライバがモジュールでなく、カーネルイメージに組み込まれていて、megasrがロードされるよりも先にahciが使われてしまいディスクがahciでのアクセスになってしまうため。ahciをモジュール化することによって、megasrドライバを先にロードするのが目的です。
  13. できあがったカーネルをインストール。megasrドライバがinitrdに含まれていない場合は、initrdを作り直す。
    # echo "megasr" > /etc/initramfs-tools/module
    # update-initramfs -u -v -k 3.2.0-29-generic (もし違うリリースならmegasr.koをそれに合わせて作り直して組み込む必要あり)
  14. システムを再起動。
  15. 起動後にRAIDコントローラーにバインドされてるドライバがahciからmegasrになったのを確認。
    # lspci -v -s 0000:00:1f.2
    とか
    # cat /proc/scsi/scsi
    とかでわかるはず。
  16. ステップ8で引き抜いたSATAケーブルをDisk 2に差し戻す。
  17. Fujitsu ServerView RAID Managerをインストール。FujitsuがUbuntu向けに公開してるServerView RAID Manager 5.2.6はTX100 S3pのチップセットを認識しないので、ここではRed Hat向けに公開されているものを自分でUbuntu向けにポーティングしたServerView RAID Manager 5.5.12を使ってます。
    # dpkg -i serverview-raid-manager_5.05-12_amd64.deb
  18. RAID Managerが動作しているのを確認。コマンドライン(amCLIコマンド)でもいいし、https://localhost:3173でWeb GUIにアクセスでも可能。Web GUIの場合はJRE 1.6.0u38とかをfirefoxに入れとく必要あり。
    # amCLI -l
    21/3: System, 'tx100s3p'
    39/1: Software adapter, 'Linux Multiple Devices (0)'
    32/1: SATA adapter, 'LSI Embedded MegaRAID (1)'
    32/3: SATA Backplane
    32/4: Disk, 'SEAGATE ST3500413AS (0)', 475883MB
    32/9: Disk, 'SEAGATE ST3500413AS (1)', 475883MB
    32/6: CDROM, 'Sony Optiarc DVD RW AD-7290H (4)'
    32/2: Logical drive 0, 'LogicalDrive_0', RAID-1, 475883MB
    21/0: Multiplexer, 'ServerView RAID Manager'
    21/4: Scheduler
    21/10: Task, 'Write snapshot'
    21/5: E-mail log
    21/1: File log
    21/2: System log
    33/0: Plugin, 'LSIStoreLib-Plugin'
    39/0: Plugin, 'LMD-Plugin'
  19. Email Alertの設定をする。やり方はFujitsuのマニュアルを参照。
  20. 再起動してすべてちゃんと動いてるか確認して終了。

実はこの検証をやる前に、Fujitsu PRIMERGY CX250 S1で同じことをやったんだけど、上でも言ったようにC600はSATAとSCUで別インスタンスなので、megasrでのセットアップもTX100 S3pよりもっと簡単にできます。

あと言い忘れたけど、使ったmegasrドライバのバージョンは14.05.0727.2011です。15.00.0927.2012も試したんだけど、起動時にkernel panicする場合があって、14.05.0727.2011の方が安定してたのでこっちにしました。14.05.0727.2011をビルドする時に、どうやらカーネル3.2とかには対応してなかったらしく、少々ソースコードの修正が必要でした。15.00.0927.2012だと何も問題なくコンパイル通るはず。

最後に。ここで書いた手順で何か問題が起こっても自己責任でお願いします。megasrドライバやUbuntu 12.04用のServerView RAID Managerが欲しい人はFujitsuのサポートの人に聞いてください。ひょっとしたらちゃんとしたものが出てくるかもしれません。

本日のツッコミ(全1件) [ツッコミを入れる]
_ rami (2013-04-16 22:03)

Hi, <br> <br>where can i get the megasr.ko for the ubuntu kernel ? <br> <br>best regards


«前の日記(2012-12-19) 最新 次の日記(2012-12-29)»