私は、OS X 10.10を実行しているMacのVirtualBox VMでOracle Linux 7(CentOS / RedHatベースのディストリビューション)を実行しています。 iSCSI ターゲットとして Synology Diskstation があります。
Synologyに正常に接続し、ディスクを分割し、ファイルシステムを作成しました。/dev/sdb
パーティショニングといいます/dev/sdb1
。今私が望むのは、簡単にアクセスできるようにマウントポイントを作成することです。
mount /dev/sdb1 /mnt/www
このコマンドは有効です。しかし、明らかに再起動後も持続しません。心配しないで.../etc/fstab
始めましょう。
まず、常に正しいデバイスを使用していることを確認するためにパーティションのUUIDを取得します。
blkid /dev/sdb1
Result:
/dev/sdb1: UUID="723eb295-8fe0-409f-a75f-a26eede8904f" TYPE="ext3"
今次の行/etc/fstab
UUID=723eb295-8fe0-409f-a75f-a26eede8904f /mnt/www ext3 defaults 0 0
再起動後、システムがクラッシュしてメンテナンスモードに入ります。挿入された行を削除すると、すべてが正常に戻ります。しかし、私は次の言葉に従います。Oracleライブラリ
私は何かを見逃していることを知っています。誰でも私に正しい方向を教えてもらえますか?
答え1
以下のようにパラメータ "defaults" を "_netdev" に変更するだけです。
UUID=723eb295-8fe0-409f-a75f-a26eede8904f /mnt/www ext3 _netdev 0 0
これにより、ネットワークが正しく起動した後にのみマウントポイントがマウントされます。
答え2
紹介する:
これはシステムD起動時にiSCSIドライブをマウントする代わりに使用できます。
起動時にiSCSIディスクをマウントするには(2)の手順が必要です。
LUNはホストによって接続する必要があります。
次に、ローカルファイルシステムの特定の場所にインストールします。
スクリプト -Ubuntu 20.04 LTSを使用して開発- 以下の回答を貼り付けると、他の人がiSCIインストールを構成するのに苦労する可能性があります。本当に退屈で退屈なことです。この文書の日付に基づいて、この機能はうまく機能し、一貫して正しい結果を生成します。
iSCSIドライブがインストールされているホストにスクリプトを直接ダウンロードするには:
git clone https://github.com/f1linux/iscsi-automount.git
いくつかありますので参考にしてくださいDebian 固有のコマンドGithubリポジトリのフルスクリプトdpkg
:以下の要約スクリプトはディストリビューションによって異なり、SystemDを使用するすべてのディストリビューションで動作する必要があります。
前提条件:
open-iscsi
インストールとその設定ファイル/etc/iscsi/iscsid.conf
とinitiatorname.iscsi
設定。iscsiadm
スクリプトを実行する前に、コマンドを使用して接続を手動でテストします。
(2)スクリプト:
config-iscsi-storage.sh
:SystemDというサービスを作成し、起動時に自動的にLUNに接続します。luns.service 接続。このスクリプトを実行する必要があります。最初。 LUNを接続した後、次のスクリプトを実行する前に、次のパーティションを作成してファイルシステムをここに配置する必要があります。
config-iscsi-storage-mounts.sh
:ブート時に、ローカルファイルシステムのマウントポイントにSystemDマウントでファイルシステムを含む接続されたパーティションiSCSIディスクを自動的にマウントします。
スクリプト:
ノートecho
:スクリプトからフィードバック、指示、その他の残骸を取り除き、操作を評価しやすく読みやすくしました。
config-iscsi-storage.sh
####### SET VARIABLES #######
# Host exposing the LUNs:
STORAGEIP=''
# Get this value from the storage host exposing the LUN:
IQNTARGET=''
if [ ! -d /root/scripts ]; then
mkdir /root/scripts
fi
if [ ! -f /root/scripts/connect-luns.sh ]; then
cat <<EOF> /root/scripts/connect-luns.sh
#!/bin/bash
# Use of "sendtargets" necessary to wake up the Synology Storage Host:
iscsiadm -m discovery -t sendtargets -p $STORAGEIP
# The iscsiadm command to CONNECT the LUN lives in this file
iscsiadm -m node -T $IQNTARGET -p $STORAGEIP:3260 --login
EOF
chmod 700 /root/scripts/connect-luns.sh
chown root:root /root/scripts/connect-luns.sh
else
echo "iscsiadm -m node -T $IQNTARGET -p $STORAGEIP:3260 --login" >> /root/scripts/connect-luns.sh
fi
if [ ! -f /root/scripts/disconnect-luns.sh ]; then
cat <<EOF> /root/scripts/disconnect-luns.sh
#!/bin/bash
# The iscsiadm command to DISCONNECT the LUN lives in this file
iscsiadm -m node -T $IQNTARGET -p $STORAGEIP:3260, 1 -u
EOF
chmod 700 /root/scripts/disconnect-luns.sh
chown root:root /root/scripts/disconnect-luns.sh
else
echo "iscsiadm -m node -T $IQNTARGET -p $STORAGEIP:3260, 1 -u" >> /root/scripts/disconnect-luns.sh
fi
if [ ! -f /etc/systemd/system/connect-luns.service ]; then
cat <<EOF> /etc/systemd/system/connect-luns.service
[Unit]
Description=Connect iSCSI LUN
Documentation=https://github.com/f1linux/iscsi-automount
Requires=network-online.target
DefaultDependencies=no
[Service]
User=root
Group=root
Type=oneshot
RemainAfterExit=true
ExecStart=/root/scripts/connect-luns.sh "Connecting LUN"
StandardOutput=journal
[Install]
WantedBy=multi-user.target
EOF
chmod 644 /etc/systemd/system/connect-luns.service
systemctl daemon-reload
systemctl enable connect-luns.service
systemctl start connect-luns.service
fi
iscsiadm -m discovery -t sendtargets -p $STORAGEIP
fdisk -l
echo
echo "$(tput setaf 5)####### NEXT STEPS: #######$(tput sgr 0)"
echo
echo 'STEP 1: Find the iSCSCI disk in the output above and then partition it,'
echo ' ie: fdisk /dev/sdX where "X" is the letter of the iSCSI disk'
echo
echo 'STEP 2: Format the iSCSI disk with a filesystem'
echo ' ie: mkfs.ext4 /dev/sdX1 where the iSCSI disk is /dev/sdX'
echo
echo 'STEP 3: Execute script config-iscsi-storage-mounts.sh to configure auto-mounting the iSCSI disk'
echo ' to configure mounting the newly formatted iSCSI disks on boot'
echo
config-iscsi-storage-mounts.sh
####### SET VARIABLES #######
# Use 'fdisk -l' to identify the iSCSI disk
ISCSIDEVICE='sda1'
# The script will create the folder with the name supplied in "ISCSIDISKMOUNTFOLDER" variable
# in the path /mnt. Therefore do NOT manually create the folder the LUN is mounted to.
#
# NAMING REQUIREMENTS: Do NOT specify a folder name with a hypen in folder name that the LUN will be mounted on.
# This will cause the SystemD mount to fail.
# ie: "logsproxy" is a valid name and WILL work but "logs-proxy" will NOT and cause the mount to fail.
#
ISCSIDISKMOUNTFOLDER='logs'
# Filesystem type the LUN was formatted for which is supplied in the 'Type' field below
FILESYSTEM='ext4'
# SystemD mount file comment:
# Below variable sets "Description" field in the file that starts the mount.
MOUNTDESCRIPTION='Persistent Data living on iSCSI LUN'
## NOTE: Most settings below show work out of the box
if [ ! -d /mnt/$ISCSIDISKMOUNTFOLDER ]; then
mkdir /mnt/$ISCSIDISKMOUNTFOLDER
chmod 770 /mnt/$ISCSIDISKMOUNTFOLDER
fi
if [ ! -f /etc/systemd/system/mnt-$ISCSIDISKMOUNTFOLDER.mount ]; then
cat <<EOF> /etc/systemd/system/mnt-$ISCSIDISKMOUNTFOLDER.mount
[Unit]
Description=$MOUNTDESCRIPTION
After=connect-luns.service
DefaultDependencies=no
[Mount]
What=/dev/disk/by-uuid/$(ls -al /dev/disk/by-uuid | grep $ISCSIDEVICE | awk '{print $9}')
Where=/mnt/$ISCSIDISKMOUNTFOLDER
Type=$FILESYSTEM
StandardOutput=journal
[Install]
WantedBy=multi-user.target
EOF
chown root:root /etc/systemd/system/mnt-$ISCSIDISKMOUNTFOLDER.mount
chmod 644 /etc/systemd/system/mnt-$ISCSIDISKMOUNTFOLDER.mount
systemctl daemon-reload
systemctl enable mnt-$ISCSIDISKMOUNTFOLDER.mount
sudo systemctl start mnt-$ISCSIDISKMOUNTFOLDER.mount
else
echo "'/etc/systemd/system/mnt-$ISCSIDISKMOUNTFOLDER.mount' already exists"
fi
echo
echo "$(tput setaf 5)####### NEXT STEPS: #######$(tput sgr 0)"
echo
echo 'Reboot and verify that the iscsi disk automatically mounted on boot using the "mount" command'
echo
結論として:
ご覧のとおり、iSCSIディスクを接続するのは面倒な作業です。これがあなたに重い荷物を取り除くことを願っています -