Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
ISCSI/ブートのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
ISCSI/ブート
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{DISPLAYTITLE:iSCSI ブート}} [[Category:Arch の入手とインストール]] [[Category:ネットワーク]] [[Category:ストレージ]] [[en:iSCSI Boot]] {{Related articles start}} {{Related|iSCSI ターゲット}} {{Related|iSCSI イニシエータ}} {{Related articles end}} [[iSCSI ターゲット]]に Arch をインストールすることで[[ディスクレスシステム|ディスクレスマシン]]を使って iSCSI ターゲットから起動することができます。(NIC が iBPT に対応していない、または [[TFTP]] サーバーをセットアップしたくないなどの理由で) iPXE ブート USB を必要としないかぎり物理ディスクは不要です。 == ターゲット構成 == ホスティングサーバー OS で iSCSI ターゲットをセットアップできます。ホスティングサーバー OS として Arch Linux を使用する場合、[[iSCSI ターゲット]]に書かれている手順に従ってください。 == イニシエータ構成 == === 概要 === # インストーラー環境に {{Pkg|open-iscsi}} パッケージをインストール。 # iSCSI ターゲットに接続して論理ドライブにパーティションを作成。 # 通常通りに Arch Linux をインストール。 # インストールした環境に {{Pkg|open-iscsi}} パッケージをインストール。 # open-iscsi モジュールを含んだ初期 RAM ディスクイメージを作成。 {{Note|上記に加えて、リモートディスクからブートローダー (GRUB など) をロードするのに必要な SAN ブート可能なインフラを用意する必要があります。複数のネットワークインターフェイスカードが SAN ブートをサポートしています。そのようなカードを持っていない場合、[http://ipxe.org/ iPXE] や [http://etherboot.org/wiki/start gPXE] などを使います。}} === iSCSI でインストール === Arch Linux ISO イメージを [https://www.archlinux.org/download/ ダウンロード] して ISO イメージを使って Arch Linux を起動してください。 ISO インストールイメージには iSCSI に必要なモジュールは含まれていないため、先にインストール・セットアップする必要があります。 ディスクのパーティションを行う前に、[[公式リポジトリ]]から {{Pkg|open-iscsi}} パッケージを[[インストール]]してターゲットに接続してください。 以下では例として、サーバー (ターゲット) の IP アドレスは 192.168.1.100、クライアント (イニシエータ) の IP アドレスは 192.168.1.101 とし、iSCSI イニシエータの名前は "iSCSI.Initiator.Name"、ターゲットの名前は "iSCSI.Target.Name" とします。ネットワーク構成にあわせて変更してください。 パッケージをインストールしてモジュールをロード: pacman -Sy pacman -S open-iscsi modprobe iscsi_tcp ターゲットのリストを表示 (ポータル IP やターゲットの名前によって出力は変わります): {{hc|# iscsiadm -m discovery -t st -p 192.168.1.100|192.168.1.100:3260,-1 iqn.2011-03.example.org.istgt:arch}} ターゲットに接続: # iscsiadm -m node -T iqn.2011-03.example.org.istgt:arch -p 192.168.1.100 -l これでローカルホストはターゲットホストのドライブに接続されます (''dmesg'' の出力を見てください)。 {{Note|パーティションを作成する際に iSCSI ドライブにスワップは作成しないことを推奨します。警告は無視してかまいません。}} ローカルドライブと同じようにパーティションテーブルとパーティションを作成できます。それから Arch Linux のインストールを通常通りに行ってください。 新しくインストールしたルートファイルシステムに {{Pkg|open-iscsi}} パッケージを[[インストール]]してください。 ルートファイルシステムで [[mkinitcpio]] を実行する前に、以下のファイルを用意する必要があります: {{hc|/mnt/usr/lib/initcpio/install/iscsi|<nowiki> build () { local mod for mod in iscsi_ibft iscsi_tcp libiscsi libiscsi_tcp scsi_transport_iscsi crc32c; do add_module "$mod" done add_checked_modules "/drivers/net" add_binary "/usr/bin/iscsistart" add_runscript } help () { cat <<HELPEOF This hook allows you to boot from an iSCSI target. HELPEOF } </nowiki>}} ==== iBFT 互換 ROM を使う ==== iBFT に対応している NIC やブートデバイス (iPXE など) を使用している場合、自動設定を使ってネットワーク設定と iSCSI ターゲットを設定できます: {{hc|/mnt/usr/lib/initcpio/hooks/iscsi|<nowiki> run_hook () { modprobe iscsi_tcp modprobe iscsi_ibft echo "Network configuration based on iBFT" iscsistart -N || echo "Unable to configure network" echo "iSCSI auto connect based on iBFT" iscsistart -b || echo "Unable to auto connect" } </nowiki>}} {{Note|(111) や (15 - Session Exists) のような自動接続のエラーのせいで起動できない場合は、以下を試してください。次のフックではネットワークが初期化されるのを待ち、成功するまで自動接続を試み続けます.}} {{bc|<nowiki> run_hook () { modprobe iscsi_tcp modprobe iscsi_ibft echo "Network configuration based on iBFT" iscsistart -N || echo "Unable to configure network" echo "Waiting 5 seconds..." sleep 5 echo "iSCSI auto connect based on iBFT" until iscsistart -b ; do sleep 3 done } </nowiki>}} ==== iSCSI ターゲットの手動設定 ==== iBFT 対応のブート ROM を使っていない場合、ネットワークと iSCSI ターゲットを手動で明示的に設定する必要があります: {{hc|/mnt/usr/lib/initcpio/hooks/iscsi|<nowiki> run_hook () { modprobe iscsi_tcp ifconfig eth0 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255 sleep 2 iscsistart -i iSCSI.Initiator.Name -t iSCSI.Target.Name -g 1 -a 192.168.1.100 } </nowiki>}} ==== DHCP を使う ==== 上記のスクリプトで DHCP を使いたい場合、以下のフックを使用することができます。ただし {{Pkg|dhcpcd}} をインストールして [[mkinitcpio|/etc/mkinitcpio.conf]] の BINARY 行に追加する必要があります。 {{hc|/mnt/usr/lib/initcpio/hooks/iscsi|<nowiki> run_hook () { modprobe iscsi_tcp mkdir -p /var/lib/dhcpcd dhcpcd eth0 sleep 2 iscsistart -i iSCSI.Initiator.Name -t iSCSI.Target.Name -g 1 -a 192.168.1.100 } </nowiki>}} [[mkinitcpio|/etc/mkinitcpio.conf]] の HOOKS 行に "iscsi" を追加してください。 {{ic|mkinitcpio -p linux}} を実行すると新しい {{ic|/boot/initramfs-linux.img}} と {{ic|/boot/initramfs-linux-fallback.img}} が生成されます。 {{Note| * 別のモジュールを必要とする NIC カードが接続されたマシンでインストールした Arch を起動する場合は、HOOKS から "autodetect" を削除してください。 * HOOKS から "autodetect" を削除すると初期 RAM ディスクの再生成に時間がかかるようになります。 }} 再起動後に iSCSI ターゲットドライブからファイルシステムをマウントできるようになります。 == ディスクレスシステムの Open iSCSI イニシエータの設定 == ディスクレスシステムのイニシエータはネットワークに問題が発生したりターゲットシステムを再起動しても大丈夫なように設定する必要があります。open-iscsi の [https://github.com/open-iscsi/open-iscsi/blob/master/README README] では iSCSI ルートに最適な iSCSI 設定が説明されています。 iSCSI ディスクでルートパーティションに直接アクセスする場合、iSCSI タイマーを設定して iSCSI レイヤーが複数回セッションの再確立を試行してコマンドがすぐに再度キューに入らないようにしてください。基本的には dm-multipath を使用する場合の逆をすれば良いでしょう。 この場合、以下の設定で iSCSI の ping をオフにできます: node.conn[0].timeo.noop_out_interval = 0 node.conn[0].timeo.noop_out_timeout = 0 そして replacement_timer をとても大きな値に設定: node.session.timeo.replacement_timeout = 86400 イニシエータによってネットワークの問題が検出されると、実行中のコマンドはすぐに失敗します。例外は SCSI レイヤーのエラーハンドラが動作している場合です。SCSI エラーハンドラが動作しているかどうかは以下のように iscsiadm を実行することで確認できます: # iscsiadm -m session -P 3 以下のように表示されます: Host Number: X State: Recovery SCSI EH が動作している場合、{{ic|node.session.timeo.replacement_timeout}} の秒数が経過するまでコマンドは失敗しません。 SCSI EH を起動させるタイマーを修正するには、デバイスの sysfs ファイルに直接書き込みを行います (X は秒数に置き換えてください): # echo X > /sys/block/sdX/device/timeout もしくは udev ルールを使ってタイムアウトを修正する場合、{{ic|/etc/udev/rules.d/50-iscsi.rules}} を作成して以下の行を追加してください: ACTION=="add", SUBSYSTEM=="scsi" , ATTR{type}=="0|7|14", \ RUN+="/bin/sh -c 'echo 90 > /sys$$DEVPATH/timeout'" {{ic|echo 90}} は好きな値に変更してください。 udev を使用しない場合の通常のファイルシステムコマンドのデフォルトのタイムアウトは30秒です。 低水準の I/O コマンドはターゲットの IO スケジューラを通過します。パフォーマンスを向上させるため、ディスクレスシステムでは "none" つまりキューイングアルゴリズムを使用しないことを推奨します。詳細および設定方法は[[パフォーマンスの最大化#カーネルの I/O スケジューラ]]を見てください。 == トラブルシューティング == === デバイスが認識されない === eth0 インターフェイスの検出に問題が発生する場合、[[mkinitcpio|/etc/mkinitcpio.conf]] の MODULES 行で NIC のカーネルモジュールを明示的にインストールしてください。
このページで使用されているテンプレート:
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Lowercase title
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
ISCSI/ブート
に戻る。
検索
検索
ISCSI/ブートのソースを表示
話題を追加