今回はUbuntu ServerにiSCSIをマウントする方法を紹介します。
環境
今回使用する環境を紹介します。
iSCSIサーバはTrueNASの機能にあるものを使用しました。そしてクライアントはUbuntu Server 22.04を使いました。
インストール
必要なパッケージをインストールします。Ubuntu Serverの場合、すでにインストール済みの場合がありますが一応確認します。
確認コマンドは以下の通りです。
$ dpkg -l open-iscsi
要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持
| 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留
|/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常)
||/ 名前 バージョン アーキテクチ 説明
+++-==============-==============-============-=================================
ii open-iscsi 2.1.5-1ubuntu1 amd64 iSCSI initiator tools
黄色マーカーでマークがされている部分が「ii」でない場合は下にあるコマンドを実行してインストールしてください。
インストール後確認コマンドを実行すると「ii」になっていると思います。
$ sudo apt-cache search open-iscsi
これでインストール完了です。
iSCSIとの接続
準備ができたので実際に接続していきます。
ここからはiscsiadmコマンドを使っていきます。iscsiadmコマンドの参考になるブログを見つけたので紹介しておきます。(特にオプション関係)
まず、ISCSIサーバを見つけて登録します。以下がコマンド例です。IPアドレス部分は環境によって変わるので自分の環境にあわせて入力してください。
$ sudo iscsiadm -m discoverydb -t st -p [IPアドレス]:[ポート番号] --discover
--例--
$ sudo iscsiadm -m discoverydb -t st -p 192.168.1.2:3260 --discover
これで全てのターゲットが登録されました。
次にCHAP認証の設定を行います。この設定はiSCSIサーバでCHAP認証を有効にしている場合に設定が必要です。
設定ファイルをテキストエディタで編集します。
$ sudo nano /etc/iscsi/iscsid.conf
#discovery.sendtargets.auth.authmethod = CHAP
#discovery.sendtargets.auth.username = username
#discovery.sendtargets.auth.password = password
#discovery.sendtargets.auth.username_in = username_in
#discovery.sendtargets.auth.password_in = password_in
編集ができたら変更を保存して終了します。
最後にターゲットにログインします。
$ sudo iscsiadm -m node -T [address] -l
ログアウトする場合のコマンドも紹介しておきます。
$ sudo iscsiadm -m node -T [address] --logout
これで設定完了です。
パーティション作成 & ディスクのフォーマット
iSCSIでマウントしただけではディスクとして使えません。なのでパーティション設定とフォーマットをしていきます。
まず、ログインしたiSCSIのデバイス名を特定します。
「lsblk」コマンドを使って確認します。
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 128G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 126G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 63G 0 lvm /
sdb 8:16 0 128G 0 disk
sr0 11:0 1 2.6G 0 rom
今回は128GBのストレージをマウントしたので「sdb」になります。
デバイス名を確認したらパーティションを作成します。
$ sudo parted --script /dev/[デバイス名] "mklabel gpt"
$ sudo parted --script /dev/[デバイス名] "mkpart primary 0% 100%"
例
$ sudo parted --script /dev/sdb "mklabel gpt"
$ sudo parted --script /dev/sdb "mkpart primary 0% 100%"
デバイスの一覧を表示して確認しておきます。
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 128G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 2G 0 part /boot
└─sda3 8:3 0 126G 0 part
└─ubuntu--vg-ubuntu--lv 252:0 0 63G 0 lvm /
sdb 8:16 0 128G 0 disk
└─sdb1 8:17 0 128G 0 part
sr0 11:0 1 2.6G 0 rom
フォーマットします。
$ sudo mkfs.ext4 /dev/[デバイス名]
例
$ sudo mkfs.ext4 /dev/sdb1
フォーマットしたデバイスをマウント
フォーマットしたデバイスをマウントします。今回は「mnt」にディレクトリを作成し、そこにマウントします。
ディレクトリを作成します。ディレクトリ名は「iSCSI」にします。ここは自由に変更してください。
$ sudo mkdir /mnt/iscsi
作成できたらマウントします。
$ sudo mount /dev/[デバイス名] /mnt/iscsi
これでマウント完了です。
自動マウント
システム起動時に自動でマウントできるようにします。
設定ファイルを編集します。
$ sudo nano /etc/iscsi/iscsid.conf
そして、以下の部分を変更します。
[変更前]
# node.startup = automatic
node.startup = manual
[変更後]
node.startup = automatic
# node.startup = manual
このように変更して保存します。
そして以下のファイルも編集します。その前にデバイスの「UUID」を確認しておきます。
$ sudo blkid /dev/[デバイス名]
例
$ sudo blkid /dev/sdb1
/dev/sdb1: UUID="6dd1b309-5802-405d-9bfe-4b8345599fc4" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="68655935-b334-428c-8809-100aa49323d1"
UUIDを確認したら後で使うのでメモしておきます。
$ sudo nano /etc/fstab
編集画面になったら以下のコードを参考に編集します。
UUID=[コピーしたUUID] [マウント先] ext4 _netdev 0 0
例
UUID=6dd1b309-5802-405d-9bfe-4b8345599fc4 /mnt/iscsi ext4 _netdev 0 0
これで作業完了です。
再起動して正常に動作するか確認してみましょう。
まとめ
今回はiSCSIのマウントの方法を紹介しました。
コメント