소개하다:

소개하다:

저는 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

재부팅 후 시스템이 충돌하고 유지 관리 모드로 들어갑니다. 삽입된 행을 삭제하면 모든 것이 정상으로 돌아갑니다. 그러나 나는 다음의 말을 그대로 따른다.오라클 라이브러리

나는 뭔가를 놓치고 있다는 것을 알고 있습니다. 누구든지 나에게 올바른 방향을 알려줄 수 있습니까?

답변1

아래와 같이 매개변수 "defaults"를 "_netdev"로 변경하면 됩니다.

UUID=723eb295-8fe0-409f-a75f-a26eede8904f /mnt/www ext3 _netdev 0 0

이렇게 하면 네트워크가 올바르게 시작된 후에만 마운트 지점이 마운트됩니다.

답변2

소개하다:

이것은시스템 D부팅 시 iSCSI 드라이브를 마운트하는 대신 사용할 수 있습니다.

부팅 시 iSCSI 디스크를 마운트하려면 (2) 단계가 필요합니다.

  1. LUN은 호스트에 의해 연결되어야 합니다.

  2. 그런 다음 로컬 파일 시스템의 특정 지점에 설치합니다.

스크립트-Ubuntu 20.04 LTS를 사용하여 개발됨- 아래 답변을 붙여넣으면 다른 사람들이 iSCI 설치를 구성하는 수고를 덜 수 있습니다. 정말 지루하고 지루한 일입니다. 이 문서의 날짜를 기준으로 이 기능은 잘 작동하고 일관되고 올바른 결과를 생성합니다.

iSCSI 드라이브가 설치된 호스트에 스크립트를 직접 다운로드하려면:

git clone https://github.com/f1linux/iscsi-automount.git

일부 있으니 참고해주세요데비안 특정 명령Github 저장소의 전체 스크립트 dpkg: 아래 요약 스크립트는 배포판별로 다르며 SystemD를 사용하는 모든 배포판에서 작동해야 합니다.

전제 조건:

  1. open-iscsi설치 및 해당 구성 파일 /etc/iscsi/iscsid.confinitiatorname.iscsi구성.

  2. 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 디스크를 연결하는 것은 지루한 작업입니다. 이것이 당신에게 무거운 짐을 덜어주기를 바랍니다 -

관련 정보