또한 · ArchLinux 설치 각서

6782 단어 iSCSIarchLinuxsystemd
ArchLinux 설치 각서 시작한 ArchLinux 프로젝트. 이전 하나 하나 · ArchLinux 설치 각서에서는 수동으로 iSCSI 장치를 마운트 할 수 있었지만 부팅시 자동 마운트 할 수 없었습니다. 여러가지 시도해 성공했으므로, 그 순서와 지식을 정리했습니다.

설치 절차는 하나 하나 · ArchLinux 설치 각서으로 진행됩니다.

iSCSI 이니시에이터



개요



iSCSI 스토리지를 사용할 수 있도록 하는 순서의 개요는 아래와 같다.
  • iSCSI 대상을 찾습니다.
  • iSCSI 대상에 로그인. 그러면 HDD 디바이스로 인식된다.
  • 인식된 HDD 장치를 마운트.

  • iSCSI 대상 발견



    수동으로 조작한다면 DNS 등록되어 있는 머신명을 지정해도 됩니다. 그러나 기동시의 자동 마운트에서는 머신명이라고 실패하는 것 같습니다. 이 경우 IP 주소를 직접 지정합시다. 예를 들어 IP 주소가 192.168.0.3이면 :
    # iscsiadm -m discovery -t sendtargets -p 192.168.0.3
    192.168.0.3:3260,-1 iqn.2005-10.org.freenas.ctl:iscsi0
    

    이 때의 지정이 데이터베이스라고 불리는 장소에 등록됩니다. 데이터베이스의 정체는 /etc/iscsi/send_targets 디렉토리입니다.
    # find /etc/iscsi/send_targets -type f -ls
        37660      4 -rw-------   1  root     root          544 Apr 20 22:23 /etc/iscsi/send_targets/192.168.0.3,3260/st_config
    # cat /etc/iscsi/send_targets/192.168.0.3,3260/st_config
    # BEGIN RECORD 2.0-874
    discovery.startup = manual
    discovery.type = sendtargets
    discovery.sendtargets.address = 192.168.0.3
    discovery.sendtargets.port = 3260
    discovery.sendtargets.auth.authmethod = None
    discovery.sendtargets.timeo.login_timeout = 15
    discovery.sendtargets.use_discoveryd = No
    discovery.sendtargets.discoveryd_poll_inval = 30
    discovery.sendtargets.reopen_max = 5
    discovery.sendtargets.timeo.auth_timeout = 45
    discovery.sendtargets.timeo.active_timeout = 30
    discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
    # END RECORD
    

    데이터베이스에서 삭제하는 명령은 다음과 같습니다.
    # iscsiadm -m discovery -o delete -p 192.168.0.3
    # ls -a /etc/iscsi/send_targets
    .  ..
    

    또한 이 작업에서 발견된 노드도 데이터베이스에 등록됩니다. 이 데이터베이스의 정체는 /etc/iscsi/nodes 디렉토리입니다.
    # find /etc/iscsi/nodes -type f -ls
        37662      4 -rw-------   1  root     root         2070 Apr 20 22:23 /etc/iscsi/nodes/iqn.2005-10.org.freenas.ctl:iscsi0/192.168.0.3,3260
    

    데이터베이스에 등록된 노드는 다음 명령으로 확인할 수 있습니다.
    # iscsiadm -m node
    192.168.0.3:3260,-1 iqn.2005-10.org.freenas.ctl:iscsi0
    

    데이터베이스에서 삭제하는 명령은 다음과 같습니다.
    # iscsiadm -m node -o delete
    # iscsiadm -m node
    iscsiadm: No records found
    # ls -a /etc/iscsi/nodes
    .  ..
    

    iSCSI 대상에 로그인



    iSCSI 대상을 발견하고 데이터베이스에 등록한 후 로그인합니다.
    # iscsiadm -m node --login
    Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260] (multiple)
    Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260] successful.
    

    로그인에 성공하면 다음 명령으로 확인할 수 있습니다.
    # iscsiadm -m session
    tcp: [3] 192.168.0.3:3260,2 iqn.2005-10.org.freenas.ctl:iscsi0 (non-flash)
    

    로그아웃은 다음과 같습니다.
    # iscsiadm -m node --logout
    Logging out of session [sid: 3, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260]
    Logout of [sid: 3, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260] successful.
    # iscsiadm -m session
    iscsiadm: No active sessions.
    

    마운트


    /etc/fstab를 설정하면 로그인과 동시에 마운트되는 것 같습니다.
    # mount | grep iscsi
    /dev/sdc on /iscsi type ext4 (rw,noatime,nodelalloc,nobarrier,errors=remount-ro,stripe=256,data=journal,_netdev)
    # ls /iscsi
    lost+found  test1
    

    마운트 해제는 일반 명령입니다.
    # umount /iscsi
    # ls -a /iscsi
    .  ..
    

    다시 마운트도 일반 명령으로.
    # mount /iscsi
    # ls /iscsi
    lost+found  test1
    

    기계 시작시 자동 마운트



    systemd의 service를 스스로 만들었습니다. 위의 로그인만 하면 됩니다.

    참고 문헌: redhat - 지원 > 제품 매뉴얼 > Red Hat Enterprise Linux > 7 시스템 관리자 가이드 - 9. systemd를 통한 서비스 관리 - 9.6. 시스템 유닛 파일 작성 및 변경

    iSCSI 로그인 서비스 만들기


    # vi /etc/systemd/system/login-iscsi.service
    # cat /etc/systemd/system/login-iscsi.service
    [Unit]
    Description=login iSCSI node
    After=open-iscsi.service
    
    [Service]
    ExecStart=/usr/bin/iscsiadm -m node --login
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
    

    동작을 확인합니다.
    # systemctl start login-iscsi.service
    # systemctl status login-iscsi.service
    * login-iscsi.service - login iSCSI node
       Loaded: loaded (/etc/systemd/system/login-iscsi.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
    
    Apr 20 23:18:23 HostName systemd[1]: Starting login iSCSI node...
    Apr 20 23:18:24 HostName iscsiadm[680]: Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260] (multiple)
    Apr 20 23:18:24 HostName iscsiadm[680]: Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260] successful.
    Apr 20 23:18:24 HostName systemd[1]: Started login iSCSI node.
    

    기계 재부팅


    # systemctl enable login-iscsi.service
    Created symlink /etc/systemd/system/multi-user.target.wants/login-iscsi.service -> /etc/systemd/system/login-iscsi.service.
    # reboot
    

    시작 후 확인.
    # systemctl status login-iscsi.service
    * login-iscsi.service - login iSCSI node
       Loaded: loaded (/etc/systemd/system/login-iscsi.service; disabled; vendor preset: disabled)
       Active: inactive (dead) since Thu 2017-04-20 23:27:46 JST; 42s ago
      Process: 264 ExecStart=/usr/bin/iscsiadm -m node --login (code=exited, status=0/SUCCESS)
     Main PID: 264 (code=exited, status=0/SUCCESS)
    
    Apr 20 23:27:40 HostName systemd[1]: Starting login iSCSI node...
    Apr 20 23:27:46 HostName iscsiadm[264]: Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260] (multiple)
    Apr 20 23:27:46 HostName iscsiadm[264]: Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:iscsi0, portal: 192.168.0.3,3260] successful.
    Apr 20 23:27:46 HostName systemd[1]: Started login iSCSI node.
    # ls /iscsi
    lost+found  test1
    

    했다

    좋은 웹페이지 즐겨찾기