これはArch LinuxとそのMkinitcpio initrdイメージ生成スクリプトに基づいており、カーネルまたはその他のコンポーネントを更新する際に迅速かつ簡単に再構築できます。 実際、これはLinux + BusyBox + iSCSI Enterprise Target カーネルがInitrdイメージにパックされており、必要な構成ファイルが取り出されています。
設置
サイトからシステムのバイナリイメージをダウンロードし 、ブートディスクのルート(HDD、USBフラッシュ、メモリカードなど)に解凍し、そこにgrub(または他のお気に入りのブートマネージャー)をインストールし、その構成でLinuxカーネルブートを設定します。
タイトルLinux iSCSIターゲットボックス ルート(hd0.0) kernel / vmlinuz26 root = / dev / sdb1 ro ip = <this-box-ip> :: <gw-ip>:<netmask> :: eth0:なし initrd /initrd-iscsi.img
/ dev / sdb1は、設定ファイルを含むiscsi-target-etcディレクトリが存在するルートにあるパーティションの名前です。 そして、 ip = ::: -ネットワーク設定。
Mkinitcpioのドキュメントでカーネルパラメーターの詳細を読む
カスタマイズ
すべての可変設定はiscsi-target-etcディレクトリにあります。このディレクトリは、カーネルのロード時に指定されたパーティションのルートに配置する必要があります。 システム起動時のこのディレクトリの内容は、単純に/などにコピーされ、Linux環境の構成ファイルが含まれる場合があります。 コピーされたファイルにrc.localファイルが存在する場合、コピー後にファイルが開始されるため、システムイメージを再構築せずに環境を追加設定できます。
iSCSI Enterprise Targetデーモンの構成は、 / iscsi-target-etc / iet /ディレクトリにあります。このディレクトリは、起動時に/ etc / iet /にコピーされ、事前構成が必要です。 たとえば、次のような行をietd.confファイルに書き込むことができます。
ターゲットiqn.2001-04.com.example:storage.disk1.sys1.xyz Lun 0パス= / dev / sda、タイプ= blockio、ScsiId = xyz、ScsiSN = xyz
これにより、ドライブ/ dev / sdaをブロックデバイスとして共有できます。
ietadm管理ユーティリティを使用して、デーモンを動的に管理することもできます。 たとえば、次のコマンドでターゲットを作成します。
ietadm --op new --tid = 1 --params Name = iqn.2001-04.com.example:storage.disk1.sys1.xyz
LUNに追加します。
ietadm --op new --tid = 1 --lun = 0 --params Path = / dev / sda、Type = blockio
iSCSI Enterprise Targetの構成の詳細については、ドキュメントをご覧ください。
コンソールへのアクセスは、直接またはTelnetを介して可能です。 ルートのデフォルトパスワードは666666です
パスワードを変更するには、 シャドウ用のファイルをiscsi-target-etcディレクトリに配置し、root用に新しく生成されたパスワードを使用します。システムが起動すると、イメージに配線されているパスワードが上書きされます。
したがって、ご覧のとおり、データバックアップまたは仮想化システム用のiSCSIサーバーの展開は簡単で、数分かかります。 確かに、プロジェクトの開発は始まったばかりなので、本番環境ではまだ使用を推奨していません。
組立
アセンブリに使用されるすべてのスクリプトは 、GPLv2ライセンスの下でソースコードで利用できます 。 イメージをビルドするには、mkinitcpioおよびmkinitcpio-nfs-utilsパッケージがインストールされたArch Linuxが必要です。 また、AURから取得できるiSCSI Enterprise Target( iscsitarget-kernelおよびiscsitarget-usr)をインストールするか、 公式サイトから最新バージョンのソースをダウンロードして手動でコンパイルする必要もあります。
tar xf iscsitarget-1.4.20.1.tar.gz cd iscsitarget-1.4.20.1 作る インストールする
次に、iSCSIターゲットボックスプロジェクトサイトからソースコードアーカイブをダウンロードし、/ lib / initcpio /ディレクトリに展開して、ベースシステムのインストールスクリプトへのハードリンクを作成します。
ln base-iscsi ../install/base-iscsi
画像を生成します:
mkinitcpio -c /lib/initcpio/iscsi-target-box/mkinitcpio.conf -g /boot/initrd-iscsi.img
QEMUを使用して、アセンブリの正常性をすばやく確認できます。
qemu -snapshot -kernel / boot / vmlinuz26 -initrd /boot/initrd-iscsi.img