Sunday, April 1, 2018

CentOS 6.6 리눅스 네트워크 ] 13.2 iSCSI Initiator 간단 구성


안녕하세요. 썬구루입니다.  이 게시물에서 CentOS 6.6 리눅스를 iSCSI Initiator으로 구성 방법에 대해 간단하게 알아보도록 하겠습니다.

이전 게시물에서 CentOS 6.6 리눅스를 가지고 iSCSI Target 을 구성하는 방법에 대해 알아보았습니다. 20GB 용량의 /dev/sdb, /dev/sdc를 iSCSI 디바이스로 구성하였죠. 그럼 이 iSCSI 디바이스를 잡아 사용할 수 있도록 리눅스, 윈도우 서버, 솔라리스를 iSCSI initiator로 구성해보도록 하겠습니다. 요즘 나오는 서버 운영체제는 iSCSI Initiator를 지원합니다.


■ iSCSI Initiator IP 주소

iSCSI Initiator 테스트를 위한 가상머신 환경은 아래와 같습니다.

가상머신
IP 주소
리눅스
 192.168.80.182
윈도우서버
 192.168.80.183
솔라리스
 192.168.80.184

■ CentOS 6.6 리눅스를 iSCSI Initiator로 구성

iSCSI Initiator로 사용할 가상머신을 생성한 후 CentOS 6.6을 설치합니다. 기존 가상머신 복제를 하셔도 됩니다. CentOS 6.6 DVD 1번 ISO 파일을 가상머신에 연결한 후 아래와 같은 명령을 사용하여 iSCSI Initiator 패키지를 설치합니다.

[root@iscsi02 ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:7B:A1:FC
          inet addr:192.168.80.182  Bcast:192.168.80.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe7b:a1fc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:58 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14566 (14.2 KiB)  TX bytes:2455 (2.3 KiB)
[root@iscsi02 ~]# lsblk | grep disk
sda                     8:0    0   20G  0 disk
[root@iscsi02 ~]#
[root@iscsi02 ~]# cd /media/CentOS_6.6_Final/Packages/
[root@iscsi02 Packages]# rpm -ivh iscsi-initiator-utils-6.2.0.873-13.el6.x86_64.rpm
warning: iscsi-initiator-utils-6.2.0.873-13.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:iscsi-initiator-utils  ########################################### [100%]
[root@iscsi02 Packages]# 

그리고 아래와 같은 명령을 실행하여 iSCSI Target의 디바이스를 확인합니다. 그러면 IQN 주소로 내용이 출력됩니다.

[root@iscsi02 Packages]# iscsiadm -m discovery -t sendtargets -p 192.168.80.181
Starting iscsid:                                           [  OK  ]
192.168.80.181:3260,1 iqn.iscsi01.localdcv.com:server.target1
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# chkconfig iscsid --list
iscsid          0:off 1:off 2:off 3:on 4:on 5:on 6:off
[root@iscsi02 Packages]# 

아래와 같은 명령을 사용하여 iSCSI Target 을 연결합니다. 그리고 연결된 iSCSI 디바이스를 확인합니다.

[root@iscsi02 Packages]# iscsiadm -m node -T iqn.iscsi01.localdcv.com:server.target1 --login
Logging in to [iface: default, target: iqn.iscsi01.localdcv.com:server.target1, portal: 192.168.80.181,3260] (multiple)
Login to [iface: default, target: iqn.iscsi01.localdcv.com:server.target1, portal: 192.168.80.181,3260] successful.
[root@iscsi02 Packages]# lsblk | grep disk
sda                     8:0    0   20G  0 disk
sdb                     8:16   0   20G  0 disk 
sdc                     8:32   0   20G  0 disk 
[root@iscsi02 Packages]# 

아래와 같이 명령을 사용하여 /dev/sdb iSCSI 디바이스에 EXT 파일시스템을 생성 후 마운트 해봅니다.

[root@iscsi02 Packages]# iscsiadm -m node -T iqn.iscsi01.localdcv.com:server.target1 --login
Logging in to [iface: default, target: iqn.iscsi01.localdcv.com:server.target1, portal: 192.168.80.181,3260] (multiple)
Login to [iface: default, target: iqn.iscsi01.localdcv.com:server.target1, portal: 192.168.80.181,3260] successful.

[root@iscsi02 Packages]# lsblk | grep disk
sda                     8:0    0   20G  0 disk
sdb                     8:16   0   20G  0 disk
sdc                     8:32   0   20G  0 disk
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# vgcreate testvg /dev/sdb
  Volume group "testvg" successfully created
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# lvcreate -L 5g -n test testvg
  Logical volume "test" created
[root@iscsi02 Packages]# lvscan
  ACTIVE            '/dev/testvg/test' [5.00 GiB] inherit
  ACTIVE            '/dev/vg_os/root' [15.80 GiB] inherit
  ACTIVE            '/dev/vg_os/swap' [4.00 GiB] inherit
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# mkfs -t ext4 /dev/testvg/test
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done                   
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# mkdir /test
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# mount /dev/testvg/test /test
[root@iscsi02 Packages]# df -h /test
Filesystem                                        Size  Used Avail Use% Mounted on
/dev/mapper/testvg-test                    4.8G   10M  4.6G   1% /test
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# pvscan
  PV /dev/sdb    VG testvg   lvm2 [20.00 GiB / 15.00 GiB free]
  PV /dev/sda2   VG vg_os    lvm2 [19.80 GiB / 0    free]
  Total: 2 [39.80 GiB] / in use: 2 [39.80 GiB] / in no VG: 0 [0   ]
[root@iscsi02 Packages]# 

아래와 같은 명령을 사용하여 iSCSI 디바이스 연결을 끊습니다.

[root@iscsi02 Packages]# umount /test
[root@iscsi02 Packages]# iscsiadm -m node -T iqn.iscsi01.localdcv.com:server.target1 --logout
Logging out of session [sid: 1, target: iqn.iscsi01.localdcv.com:server.target1, portal: 192.168.80.181,3260]
Logout of [sid: 1, target: iqn.iscsi01.localdcv.com:server.target1, portal: 192.168.80.181,3260] successful.
[root@iscsi02 Packages]#
[root@iscsi02 Packages]# lsblk | grep disk
sda                     8:0    0   20G  0 disk
[root@iscsi02 Packages]# 




■ Windows Server 2008 R2을 iSCSI Initiator로 구성

Windows Server 2008 R2 평가판은 아래와 같은 사이트에서 다운로드할 수 있습니다. Windows Server 2008 R2 평가판을 설치한 수 IP 주소를 설정합니다. 그리고 제어판을 실행하여 아래와 같이 iSCSI initiator 관련 내용을 찾습니다. 그리고 iSCSI Initiator를 실행합니다. 그러면 아래와 같은 화면이 나타납니다.


아래 그림과 같이 Target 부분에 iSCSI Target IP 주소인 192.168.80.181을 입력한 후 Quick Connect 버튼을 선택합니다.


설정이 완료되면 아래와 같이 연결된 내용을 확인할 수 있습니다.


작업표시줄에 있는 서버 관리자 (Server Manager)를 실행한 후 Storage > Disk Management를 선택하면 iSCSI 디바이스가 연결, 인식되어 있는 것을 확인할 수 있습니다.


새 볼륨을 추가, NTFS 파일시스템을 생성한 후 E:\ 드라이브에 연결해봅니다. 이제 iSCSI 디바이스에 생성된 NTFS 파일시스템 위에 파일을 저장할 수 있습니다.


Windows Server 2008 R2에 대한 iSCSI Initiator 테스트를 종료하기 위해 제어판에서 iSCSI Initiator를 실행한 후 아래 그림과 같이 Discovery 탭(Tab)에서 Remove  버튼을 선택합니다.


그러면 관련된 정보는 사라지고 iSCSI 디바이스 연결은 끊어집니다.




■ Solaris 10을 iSCSI Initiator로 구성

Solaris 10은 아래와 같은 웹사이트에서 다운로드할 수 있습니다.

http://www.oracle.com/technetwork/server-storage/solaris10/downloads/index.html

아래와 같은 명령을 사용하여 iSCSI Target과 연결합니다. 연결하기 전 format 명령을 사용하면 c1t0d0 디스크 하나만 보이는 것을 확인할 수 있습니다.

-bash-3.00# iscsiadm modify discovery --sendtargets enable
-bash-3.00#
-bash-3.00# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <DEFAULT cyl 2607 alt 2 hd 255 sec 63>
          /pci@0,0/pci15ad,1976@10/sd@0,0
Specify disk (enter its number): ^D
-bash-3.00#
-bash-3.00# iscsiadm add discovery-address 192.168.80.181
-bash-3.00#

iSCSI Target과 연결 후 아래와 같이 format 명령을 사용하면 iSCSI 디바이스가 연결된 것을 확인할 수 있다. format 명령을 사용하여 파티션 분할 후 newfs 명령으로 UFS 파일시스템을 만들어 아래와 같이 /test 디렉터리에 연결해봅니다.

-bash-3.00# format
Searching for disks...
The device does not support mode page 3 or page 4,
or the reported geometry info is invalid.
WARNING: Disk geometry is based on capacity data.
The current rpm value 0 is invalid, adjusting it to 3600
The device does not support mode page 3 or page 4,
or the reported geometry info is invalid.
WARNING: Disk geometry is based on capacity data.
The current rpm value 0 is invalid, adjusting it to 3600
done
c2t2d0: configured with capacity of 19.98GB
c2t3d0: configured with capacity of 19.98GB

AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <DEFAULT cyl 2607 alt 2 hd 255 sec 63>
          /pci@0,0/pci15ad,1976@10/sd@0,0
       1. c2t2d0 <IET-VIRTUAL-DISK-0001 cyl 2608 alt 2 hd 255 sec 63>
          /iscsi/disk@0000iqn.iscsi01.localdcv.com%3Aserver.target10001,1
       2. c2t3d0 <IET-VIRTUAL-DISK-0001 cyl 2608 alt 2 hd 255 sec 63>
          /iscsi/disk@0000iqn.iscsi01.localdcv.com%3Aserver.target10001,2
Specify disk (enter its number): 1
selecting c2t2d0
[disk formatted]
Disk not labeled.  Label it now? y
Warning: error setting drive geometry.
Warning: error writing VTOC.
Warning: no backup labels
Write label failed

FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> fdisk
No fdisk table exists. The default partition for the disk is:
  a 100% "SOLARIS System" partition
Type "y" to accept the default partition,  otherwise type "n" to edit the
 partition table.
y
format> p

PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition> 0
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)           0
Enter partition id tag[unassigned]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: $
partition> print
Current partition table (unnamed):
Total disk cylinders available: 2607 + 2 (reserved cylinders)
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0 - 2606       19.97GB    (2607/0/0) 41881455
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 2606       19.97GB    (2607/0/0) 41881455
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wm       0               0         (0/0/0)           0
partition> label
Ready to label disk, continue? y
partition> quit

FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format> quit
-bash-3.00# newfs /dev/rdsk/c2t2d0s0
newfs: construct a new file system /dev/rdsk/c2t2d0s0: (y/n)?
-bash-3.00# newfs /dev/rdsk/c2t2d0s0
newfs: construct a new file system /dev/rdsk/c2t2d0s0: (y/n)? y
Warning: inode blocks/cyl group (431) >= data blocks (246) in last
    cylinder group. This implies 3950 sector(s) cannot be allocated.
/dev/rdsk/c2t2d0s0:     41877504 sectors in 6816 cylinders of 48 tracks, 128 sectors
        20448.0MB in 426 cyl groups (16 c/g, 48.00MB/g, 5824 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920,
Initializing cylinder groups:
........
super-block backups for last 10 cylinder groups at:
 40898592, 40997024, 41095456, 41193888, 41292320, 41390752, 41489184,
 41587616, 41686048, 41784480
-bash-3.00#
-bash-3.00# mkdir /test
-bash-3.00#
-bash-3.00# mount /dev/dsk/c2t2d0s0 /test
-bash-3.00# df -hF ufs
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c1t0d0s0       16G   3.8G    12G    25%    /
/dev/dsk/c2t2d0s0       20G    20M    19G     1%    /test
-bash-3.00#

아래와 같은 명령을 사용하여 iSCSI Target과 연결을 끊습니다. 그리고 format 명령을 사용하면 iSCSI 디바이스 연결도 끊어진 것을 확인할 수 있습니다.

-bash-3.00# umount /test
-bash-3.00#
-bash-3.00# df -hF ufs
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c1t0d0s0       16G   3.8G    12G    25%    /
-bash-3.00#
-bash-3.00# iscsiadm list discovery-address 192.168.80.181
Discovery Address: 192.168.80.181:3260
-bash-3.00#
-bash-3.00# iscsiadm remove discovery-address 192.168.80.181
-bash-3.00#
-bash-3.00# iscsiadm list discovery-address 192.168.80.181
192.168.80.181: not found
-bash-3.00#
-bash-3.00# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c1t0d0 <DEFAULT cyl 2607 alt 2 hd 255 sec 63>
          /pci@0,0/pci15ad,1976@10/sd@0,0
Specify disk (enter its number): ^D
-bash-3.00#

이 게시물에서 iSCSI 서비스를 통해 Raw Device를 공유할 수 있다는 것을 알았습니다. NAS 디스크 스토리지의 기능을 사용하여 iSCSI를 현업에서 사용하고 있습니다. 우리는 비싼 스토리지를 사용할 수 없기 때문에 CentOS 6.6 리눅스를 가지고 구현한 것이고요. ^^

다음 게시물에서 Backup Tape Drive와 Changer를 iSCSi 디바이스로 사용하는 방법에 대해 간단히 알아보도록 하겠습니다.






No comments:

Post a Comment