openfiler 설치 1

[ Openfiler 설치 ]  

아래설치작업을네트워크스토리지서버(openfiler1)에대해실행합니다!

양쪽 Oracle RAC 노드에 네트워크 설정 작업을 완료했다면, 다음 단계에서는 네트워크 스토리지 서버(openfiler1) 에 Openfiler 소프트웨어를 설치해야 합니다. 문서의 뒷부분에서 네트워크 스토리지 서버를 전체 Oracle 10g RAC 공유 스토리지 환경을 위한 iSCSI 스토리지 디바이스로 설정하게 될 것입니다.

rPath Linux 를 기반으로 하는 Openfiler는 단일 프레임워크를 통해 파일 기반 NAS(Network Attached Storage)와 블록 기반 SAN(Storage Area Network)을 동시에 지원하는 무료 브라우저 기반 네트워크 스토리지 관리 유틸리티입니다. Openfiler의 전체 소프트웨어 스택은 Apache, Samba, LVM2, ext3, Linux NFS, iSCSI Enterprise Target 등의 오픈 소스 애플리케이션과 인터페이스하고 있습니다. Openfiler는 이러한 다양한 테크놀로지를 간결한 형태의 솔루션에 통합하고 강력한 웹 기반 관리 인터페이스를 통해 관리할 수 있게 합니다.

Openfiler는 CIFS, NFS, HTTP/DAV, FTP 등을 지원합니다. 하지만 여기에서는 iSCSI 지원 기능만을 이용하여 Oracle 10g RAC에서 요구하는 SAN 기반 공유 스토리지 환경을 저렴하게 구성하기로 합니다. Openfiler 서버에는 USB 2.0 인터페이스를 통해 500GB 외장형 하드 드라이브가 연결됩니다. 본 문서에서는 Openfiler 서버를 이용하여 이 디스크를 iSCSI 기반 스토리지로 설정한 후, Oracle Clusterware와 Oracle ASM 볼륨이 요구하는 공유 파일을 저장하기 위해 사용합니다.

Openfiler에 대한 자세한 설명은 Openfiler 웹사이트 http://www.openfiler.com/에서 확인하실 수 있습니다.

Openfiler 다운로드

아래 링크를 통해 Openfiler 2.1 x86(Final)을 다운로드할 수 있습니다. Openfiler를 다운로드한 다음에는 ISO 이미지를 CD로 구워야 합니다.

Openfiler

openfiler-2.1-x86-disc1.iso   (302 MB)

MS Windows 머신에서 ISO 파일을 다운로드한 경우, 이미지를 CD로 굽기 위한 다양한 옵션을 활용할 수 있습니다. 본 문서에서는 ISO 이미지를 CD를 굽기 위한 소프트웨어와 사용 방법에 대해 여러분이 잘 알고 있는 것으로 가정하겠습니다. 방법을 잘 모르거나, 이미지를 CD로 굽는데 필요한 소프트웨어가 없다면 아래 두 가지 소프트웨어 패키지 중 하나를 사용할 것을 추천 드립니다:

UltraISO

Magic ISO Maker

Openfiler 설치

이 섹션에서는 Openfiler 소프트웨어를 설치하는 과정을 단계별로 설명합니다. 여기에서는 디폴트 설정을 그대로 사용하여 Openfiler를 설치하고 있습니다. 수작업을 통한 변경 작업이 필요한 부분은 로컬 네트워크 설정이 유일합니다.

설치가 완료되면, 서버를 리부트한 뒤 모든 컴포넌트, 서비스, 드라이버가 정상적으로 실행, 인식되었는지 확인합니다. 리부트가 완료된 후 외장형 Maxtor 하드 드라이브는 Openfiler 서버에 의해 /dev/sda 디바이스로 인식되어야 합니다.

좀 더 자세한 설치 방법은 http://www.openfiler.com/docs/에서 확인하실 수 있습니다. 하지만, Oracle10g RAC 환경에서는 아래에 제시된 설명을 기반으로 시스템을 구성해야 함을 잊지 마시기 바랍니다.

Openfiler 소프트웨어를 네트워크 스토리지 서버에 설치하기 전에, NIC 인터페이스 카드와 외장형 하드 드라이브를 설치/연결하고 전원을 켜 두어야 합니다.

Openfiler ISO 이미지를 CD로 구운 뒤, CD를 네트워크 스토리지 서버 (openfiler1)에 넣고 전원을 켭니다. 그런 다음 아래 설명된 방법 대로 설치 스크린 상에서 답변을 입력합니다.

Boot Screen

Openfiler 부트 스크린이 표시됩니다. boot: 프롬프트에서 [Enter] 키를 눌러 설치 프로세스를 시작합니다.

Media Test

CD 미디어를 테스트할 것인지 묻는 질문에 대해 [Skip]을 선택하고 [Enter] 키를 누릅니다. (미디어에 에러가 있다면 CD 버닝 소프트웨어를 통해 이미 경고 메시지가 표시 되었을 것입니다.)  몇 초 동안 비디오 카드, 모니터, 마우스 등의 인식 작업이 수행되고, 인스톨러는 GUI 모드로 전환됩니다.

Welcome to Openfiler NAS/SAN Appliance

[Next]를 눌러 다음 단계로 진행합니다.

Keyboard Configuration

키보드 설정을 위한 프롬프트가 표시됩니다. 환경에 따라 적절한 설정을 선택합니다.

Disk Partitioning Setup

다음 스크린에서는 “Automatic Partitioning” 또는 “Manual Partitioning with Disk Druid” 중 하나를 선택하여 디스크 파티셔닝을 실행해야 합니다. 어떤 옵션을 선택해도 무방하지만, Openfiler 공식 제품문서에서는 Manual Partitioning을 사용할 것을 권고하고 있습니다. 필자가 설치를 위해 사용된 내장 하드 드라이브의 용량이 작은 데다가 Openfiler  소프트웨어의 저장 공간으로만 사용되기 때문에(40GB 용량의 내장 하드 드라이브는 iSCSI 스토리지로 활용되지 않습니다), 필자는 “Automatic Partitioning”을 선택하였습니다.

[Automatically partition]을 선택하고 [Next]를 클릭합니다.

서버에 이전에 설치한 Linux 운영체제가 존재하는 경우, 오래된 파티션을 “제거(remove)” 또는 “보존(keep)”할 것인지 묻는 스크린이 표시됩니다. [Remove all partitions on this system] 옵션을 선택합니다. 또 설치 대상에 [hda] 드라이브만이 선택되어 있음을 확인합니다. [Review (and modify if needed) the partitions created] 옵션도 함께 체크하도록 합니다. [Next]를 클릭하여 다음 단계로 진행합니다.

정말로 모든 파티션을 삭제할 것인지 묻는 대화 창이 표시됩니다. [Yes]를 클릭하여 경고를 승인합니다.

Partitioning

이 단계에서 인스톨러가 /dev/hda를 위해 자동으로 선택한 디스크 파티션을 조회하고, 필요한 경우 수정할 수 있습니다. 대부분의 경우 인스톨러는 /boot를 위해 100MB, swap 공간을 위해 메모리 용량의 두 배를 할당하고, 나머지를 root(/) 파티션에 할당합니다 스왑 공간의 크기는 최소 1GB로 설정하는 것이 좋습니다. 여기에서는 디폴트 설정을 그대로 사용하기로 합니다. (1GB RAM이 설치되어 있으므로 스왑 공간으로는 2GB가 할당됩니다.)

Network Configuration

Openfiler를 설치하기 전에 네트워크 스토리지 서버에 NIC 카드를 설치해 둔 상태이어야 합니다. 이 화면에서는 두 조의 NIC 카드가 모두 정상적으로 인식되고 있어야 합니다.

먼저, 각 NIC 카드에 대해 [Active on boot] 항목이 체크되어 있는지 확인합니다. (인스톨러가 eth1을 활성화하지 않았을 수도 있습니다.)

두 번째로, eth0과 eth1에 대해 [Edit] 작업을 수행합니다. eth0과 eth1에 서로 다른 IP 주소를 할당하더라도 무방합니다. 하지만 eth1(스토리지 네트워크)가 linux1, linux2의 eth1과 동일한 서브넷을 사용하도록 설정해 주는 것이 중요합니다:

eth0:

– [Configure using DHCP] 옵션의 체크를 해제합니다.

– [Activate on boot]를 체크된 상태로 둡니다.

– IP 주소: 192.168.1.195

– 넷마스크: 255.255.255.0

eth1:

– [Configure using DHCP] 옵션의 체크를 해제합니다.

– [Activate on boot]를 체크된 상태로 둡니다.

– IP 주소: 192.168.2.195

– 넷마스크: 255.255.255.0

hostname은 수동으로 설정합니다. 필자의 경우 호스트네임으로 “openfiler1″을 사용하였습니다. 마지막으로 게이트웨이와 DNS 서버를 설정하고 다음 단계로 넘어갑니다.

Time Zone Selection

표준시간대 설정을 위한 화면입니다. 환경에 따라 적절한 설정을 선택합니다

Set Root Password

root 패스워드를 선택하고 [Next]를 클릭합니다.

About to Install

설치 전 최종 확인을 위한 스크린이 표시됩니다. [Next]를 클릭하여 설치 작업을 시작합니다.

Congratulations

이것으로 네트워크 스토리지 서버에 Openfiler를 설치하는 작업을 성공적으로 마쳤습니다. 인스톨러가 CD-ROM 드라이브에서 CD를 자동으로 꺼냅니다. CD를 꺼낸 후 [Reboot]를 클릭하여 시스템을 리부트 합니다.

별다른 문제가 없다면, 리부트 후에 텍스트 로그인 스크린과 (Openfiler 서버 관리를 위한) URL이 표시될 것입니다.

——————————————————————————–

9. Openfiler를 이용한 iSCSI 볼륨 설정

아래설정작업을네트워크스토리지서버(openfiler1)에대해실행합니다!

Openfiler Storage Control Center는 Openfiler의 관리를 위한 브라우저 기반 툴로 446 포트를 이용한 https 연결을 사용합니다. 접속 방법의 예가 다음과 같습니다:

https://openfiler1:446/

Openfiler Storage Control Center 홈 페이지에서 관리자로 로그인합니다. Openfiler를 위한 디폴트 관리자 로그인 계정/암호가 아래와 같습니다:

Username: openfiler

Password: password

첫 번째 페이지에는 [Accounts] / [Authentication] 스크린이 표시됩니다. 본 문서에서는 사용자 계정/그룹 설정 작업이 불필요하므로 자세하게 설명하지 않습니다.

Openfiler를 iSCSI 스토리지 서버로 활용하기 위해서는 iSCSI 서비스 설정, 네트워크 액세스 설정, 물리적 스토리지 생성의 세 가지 작업을 수행해 주어야 합니다.

서비스

서비스를 컨트롤하기 위해 Openfiler Storage Control Center의 [Services] / [Enable/Disable] 화면으로 이동합니다:

그림 6iSCSI Openfiler 서비스의 활성화

iSCSI 서비스를 활성화하려면, ‘iSCSI target’ 서비스 네임 아래의 ‘Enable’을 클릭합니다. 그런 다음, ‘iSCSI target’의 상태가 ‘Enabled’로 변경되었는지 확인합니다.

ietd 프로세스는 Linux 환경에 iSCSI 스토리지 시스템을 구현하기 위한 iSCSI Enterprise Target 소프트웨어의 사용자 레벨 환경을 구현합니다. iSCSI 타겟이 활성화된 상태에서 SSH로 Openfiler 서버에 접속하여 iscsi-target 서비스가 실행 중임을 확인할 수 있습니다:

[root@openfiler1 ~]# service iscsi-target status

ietd (pid 3784) is running…

네트워크 액세스의 제한

다음으로 Oracle RAC 노드(linux1, linux2)가 스토리지 (사설) 네트워크를 통해 iSCSI 볼륨에 접근 가능하도록 Openfiler의 네트워크 액세스를 설정해 주어야 합니다. (iSCSI 볼륨은 다음 단계에서 생성합니다!)

이 작업은 Openfiler Storage Control Center의 [General] / [Local Networks] 스크린에서 수행할 수 있습니다. 관리자는 Local Networks 스크린을 통해 Openfiler 어플라이언스가 익스포트(export)한 리소스에 접근할 수 있는 네트워크 또는 호스트를 설정할 수 있습니다. 본 문서에서는 전체 192.168.2.0 네트워크에 대해 Openfiler 리소스의 접근을 허용하는 대신, 두 개의 Oracle RAC 노드에 대해서만 접근을 허용하는 방법을 사용하기로 합니다.

각각의 Oracle RAC 노드를 입력하는 과정에서 사용되는 ‘Name’ 필드는 참조를 위해서만 사용되는 논리적 이름(logical name)임을 참고하시기 바랍니다. 필자는 노드를 입력할 때에, 해당 IP 주소에 대해 정의된 노드 네임을 사용하였습니다. 다음으로, ‘Network/Host’ 필드에 실제 노드를 입력할 때에는, (설사 /etc/hosts 파일 또는 DNS에 호스트 네임이 등록되어 있다 할지라도) 반드시 IP 주소를 사용하도록 합니다. 마지막으로 Class C 네트워크에 실제 호스트를 입력할 때에는 서브넷 마스크를 “255.255.255.255”로 설정합니다.

여기서, 클러스터의 각 RAC 노드에 대해  private 네트워크(eth1)의 IP 주소를 입력해야 함을 잊지 마시기 바랍니다.

두 개의 Oracle RAC 노드를 추가한 결과가 아래 그림과 같습니다:

그림 7 Oracle RAC 노드의 Openfiler 호스트 액세스를 위한 설정

물리적 스토리지

이번 섹션에서는, 클러스터의 Oracle RAC 노드들이 공유 스토리지로 사용할 5 개의 iSCSI 볼륨을 생성하겠습니다. 이를 위해 Openfiler 서버에 연결된 외장형 USB 하드 드라이브에 여러 가지 작업을 실행해 주어야 합니다.

Openfiler 서버는 클라이언트에 서비스를 제공하기 위한 스토리지 디바이스로 내장형 IDE/SATA/SCSI 디스크, 외장형 USB 또는 FireWire 드라이브 등 모든 종류의 드라이브를 지원합니다. OS 레벨에서 디바이스를 감지하고 나면, Openfiler Storage Control Center를 이용하여 스토리지의 셋업 및 관리 작업을 수행할 수 있습니다.

본 문서에서는 500 GB의 외장형 USB 하드 드라이브를 사용하고 있습니다. Openfiler 서버에서는 이 드라이브가 /dev/sda(외장형 Maxtor OneTouch III 드라이브)로 인식됩니다. 이를 호가인하고 iSCSI 볼륨 생성 작업을 시작하기 위해, Openfiler Storage Control Center의 [Volumes] / [Physical Storage Mgmt.] 스크린으로 이동합니다:

그림 8 Openfiler의 물리적 스토리지

물리적 디스크의 파티셔닝

제일 먼저 /dev/sda 외장형 USB 하드 드라이브에 하나의 ‘primary partition’을 생성합니다. /dev/sda 링크를 클릭하면 파티션의 ”Edit’ 또는 ‘Create’ 옵션 중 하나를 선택할 수 있습니다. 전체 디스크에 대해 하나의 primary partition을 생성할 것이므로, 대부분의 옵션을 디폴트 상태로 유지하되 ‘Partition Type’만은 ‘Extended partition’에서 ‘Physical volume’으로 수정해 줍니다. 필자가 /dev/sda에 primary partition을 생성하기 위해 사용한 설정값이 아래와 같습니다:

Mode: Primary

Partition Type: Physical volume

Starting Cylinder: 1

Ending Cylinder: 60801

이제 파티션의 사이즈가 465.76 GB로 표시됩니다. 이제 Create 버튼을 클릭합니다. 외장형 하드 드라이브에 새로운 파티션(/dev/sda1)이 생성 되었습니다.

그림 9 물리적 볼륨의 파티셔닝

볼륨 그룹 관리

다음으로Volume Group. 을 생성합니다. 여기서는 새로 생성된 primary partition을 포함하는 rac1이라는 이름의 단일 볼륨 그룹을 생성합니다.

Openfiler Storage Control Center에서 [Volumes] / [Volume Group Mgmt.] 스크린으로 이동합니다. 이미 볼륨 그룹이 존재하는 경우 이 스크린을 통해 표시되지만, 현재는 아무 것도 표시되지 않을 것입니다. Volume Group Management 스크린을 이용하여 새로운 볼륨 그룹의 이름(rac1)을 입력하고 /dev/sda1의 체크박스를 선택하여 파티션을 선택한 다음, ‘Add volume group’ 버튼을 클릭합니다. 이제 새로 생성된 볼륨 그룹(rac1)이 목록에 표시됩니다.

그림 10 새로운 볼륨 그룹의 생성

논리적 볼륨

이제 새로 생성된 볼륨 그룹(rac1) 내에 5 개의 논리적 볼륨(logical volume)을 생성해야 합니다.

Openfiler Storage Control Center에서 [Volumes] / [Create New Volume] 스크린으로 이동합니다. 화면에 새로운 볼륨 그룹(rac1)에 대한 블록 스토리지 통계가 표시되는 것을 확인할 수 있습니다. 또 스크린 하단에는 선택된 볼륨 그룹에 대해 새로운 볼륨을 생성하는 옵션이 있습니다. 이 스크린을 이용하여 아래와 같은 5 개의 논리적(iSCSI) 볼륨을 생성합니다. 각각의 논리적 볼륨을 생성한 뒤에는 “List of Existing Volumes” 스크린이 표시됩니다. 이 화면에서 다시 “Create New Volume” 탭으로 돌아가 5 개의 논리적 볼륨을 차례로 생성해 주어야 합니다.

iSCSI / Logical Volumes

Volume Name Volume Description Required Space (MB) Filesystem Type

crs Oracle Clusterware 2,048 iSCSI

asm1 Oracle ASM Volume 1 118,720 iSCSI

asm2 Oracle ASM Volume 2 118,720 iSCSI

asm3 Oracle ASM Volume 3 118,720 iSCSI

asm4 Oracle ASM Volume 4 118,720 iSCSI

이제 네트워크의 iSCSI 클라이언트(linux1, linux2)에 의해 접근될 수 있는 5 개의 iSCSI 디스크를 생성하였습니다. 마지막으로 표시되는 “List of Existing Volumes” 스크린이 아래와 같습니다:

그림 11 새로운 논리적 (iSCSI) 볼륨

새로운 논리적 볼륨에 액세스 권한을 할당

이제 새로 생성된 iSCSI 볼륨에 iSCSI 클라이언트가 접근하기 위한 적절한 권한을 할당해 주어야 합니다. 앞부분에서 두 대의 호스트(Oracle RACE 노드)가 Openfiler의 리소스에 접근하기 위한 액세스 권한을 설정해 준 것을 기억하실 것입니다. 이번에는 두 대의 Oracle RAC 노드가 새로 생성된 5 개의 iSCSI 볼륨에 접근하기 위한 권한을 할당해 줍니다.

Openfiler Storage Control Center에서 [Volumes] / [List of Existing Volumes] 스크린으로 이동합니다. 앞에서 이미 확인한 스크린이 표시될 것입니다. 각각의 논리적 볼륨에 대해 (Properties 컬럼 밑에 위치한) ‘Edit’ 링크를 클릭합니다. 그러면 해당 볼륨의 ‘Edit properties’ 스크린이 표시됩니다. 스크린의 하단으로 스크롤 한 후, 두 대의 호스트에 대한 설정을 ‘Deny’에서 ‘Allow’로 변경한 뒤 ‘Update’ 버튼을 클릭합니다:

그림 12 논리적 (iSCSI) 볼륨에 호스트 액세스를 허용

이 작업을 5개의 논리적 볼륨에 대해 모두 수행해 줍니다.

iSCSI 타겟의 존재를 클라이언트에 알리기

새로운 논리적 볼륨이 추가될 때마다, Openfiler 서버에 관련 서비스를 재시작해야 합니다. 본 문서의 시나리오에서는 iSCSI 논리적 볼륨을 생성했으므로, iSCSI 타겟(iscsi-target) 서비스를 재시작해야 합니다. 이렇게 함으로써 새로운 iSCSI 타겟의 존재를 네트워크 상의 (액세스 권한을 가진) 모든 클라이언트에게 알릴 수 있습니다.

iSCSI 타겟 서비스를 재시작하려면 Openfiler Storage Control Center의 [Services] / [Enable/Disable] 화면으로 이동합니다: iSCSI 타겟 서비스가 이미 활성화되어 있을 것입니다. 이 서비스를 비활성화한 다음 다시 활성화합니다. ( 그림 6 참고)

Openfiler 서버에서 SSH 세션을 이용해서 같은 작업을 수행할 수도 있습니다:

[root@openfiler1 ~]# service iscsi-target restart

Stopping iSCSI target service: [  OK  ]

Starting iSCSI target service: [  OK  ]

——————————————————————————–

10. Oracle RAC 노드에 iSCSI 볼륨 설정하기

클러스터의 모든 Oracle RAC 노드에 대해 iSCSI 이니시에이터(initiator)를 설정해 주어야 합니다! 단, 파티션 생성 작업은 RAC 클러스터의 노드 중 하나에서만 실행합니다.

iSCSI 드라이버가 지원되는 모든 시스템(Linux, Unix, MS Windows, Apple Mac 등)이 iSCSI 클라이언트가 될 수 있습니다. 본 문서의 시나리오에서는 두 대의 Red Hat 4 Linux 서버(linux1 and linux2)가 클라이언트가 됩니다.

이제 두 대의 Oracle RAC 노드에 iSCSI 이니시에이터를 설정할 차례입니다. 이를 위해 양쪽 Oracle RAC 노드의 /etc/iscsi.conf 파일에 네트워크 스토리지 서버(openfiler1)의 이름을 등록하고, 앞에서 생성한 iSCSI 볼륨이 발견 될 수 있게 해야 합니다. 그런 다음 노드 중 하나(앞에서 iSCSI 볼륨의 파티셔닝을 수행했던 linux1노드)에서 Openfiler에서 발견한 iSCSI 타겟 네임을 로컬 SCSI 디바이스 네임으로 매핑하는 복잡한 작업을 수행합니다. 이 작업은 Oracle Cluster File System(OCFS2)과 Automatic Storage Management(ASM)를 이용하여 iSCSI 볼륨을 수행하는 경우에 필요합니다. 로컬 SCSI 디바이스 네임과, 이 디바이스 네임으로 매핑되는 iSCSI 타겟을 알고 있어야만, 어떤 볼륨(디바이스)이 OCFS2를 위해 사용되는지, 또 어떤 볼륨이 ASM에서 사용되는지를 알 수 있습니다. Oracle RAC 노드 중 하나가 리부팅될 때마다, 매핑이 달라질 수 있음을 참고하시기 바랍니다. 예를 들어, iSCSI 타겟 네임 “iqn.2006-01.com.openfiler:rac1.crs”가 볼륨 설정 직후 linux1의 /dev/sdd으로 매핑되었다고 가정해 봅시다. 하지만 노드를 리부팅하고 난 뒤에는 iqn.2006-01.com.openfiler:rac1.crs가 /dev/sde로 매핑이 변경될 수 있습니다. 이것이 문제가 되지는 않습니다. 모든 디스크가 OCFS2 또는 ASM에 의해 레이블(label) 처리 되기 때문입니다(뒷부분에서 자세히 설명합니다). 서비스가 볼륨 마운트를 시도하는 경우, 로컬 SCSI 디바이스 네임 대신 레이블을 이용하여 볼륨을 마운트합니다.

iSCSI (initiator) 서비스

각각의 Oracle RAC 노드에서 ISCSI (initiator) 서비스가 실행 중인지를 확인해 봅시다. 이 서비스가 운영 체제의 일부로 포함되어 있지 않다면 iscsi-initiator-utils RPM (i.e. iscsi-initiator-utils-4.0.3.0-4.i386.rpm) 을 다운로드하여 각 Oracle RAC 노드에 설치해야 합니다.

패키지가 설치되었는지 확인하기 위해, 양쪽 Oracle RAC 노드에서 아래와 같이 실행합니다:

# rpm -qa | grep iscsi

iscsi-initiator-utils-4.0.3.0-4

패키지가 설치되어 있지 않다면 RHEL4 Update 4 배포본의 3 번 디스크에 있는 iscsi-initiator-utils RPM 패키지를 이용하거나 인터넷 RPM 리소스 사이트에서 downloaded 할 수 있습니다.

패키지가 설치되어 있지 않다면 아래 명령을 실행하여 iscsi-initiator-utils RPM 패키지를 설치합니다:

# rpm -Uvh iscsi-initiator-utils-4.0.3.0-4.i386.rpm

warning: iscsi-initiator-utils-4.0.3.0-4.i386.rpm:

  V3 DSA signature: NOKEY, key ID 443e1821

Preparing…                ########################################### [100%]

   1:iscsi-initiator-utils  ########################################### [100%]

iscsi-initiator-utils RPM의 설치 여부를 확인했다면, 이제 Oracle RAC 노드(iSCSI 클라이언트)의 /etc/iscsi.conf 파일에 네트워크 스토리지 서버(iSCSI 서버)를 등록해 주는 작업만 수행해 주면 됩니다. /etc/iscsi.conf 파일을 열고 Openfiler 네트워크 스토리지 서버의 호스트네임을 정의하는 DiscoveryAddress 항목을 추가합니다. 본 문서 시나리오에서의 실행 방법이 다음과 같습니다:



DiscoveryAddress=openfiler1-priv

양쪽 Oracle RAC 노드의 /etc/iscsi.conf 파일을 수정한 뒤, 두 노드의 iscsi initiator 서비스를 시작(또는 재시작)합니다:

# service iscsi restart

Searching for iscsi-based multipath maps

Found 0 maps

Stopping iscsid: iscsid not running

Checking iscsi config:  [  OK  ]

Loading iscsi driver:  [  OK  ]

Starting iscsid: [  OK  ]

또 양쪽 Oracle RAC 노드에서 리부팅 이후에도 iSCSI 서비스가 실행되도록 설정해 주어야 합니다. 이를 위해 아래와 같이chkconfig Linux 커맨드를 실행합니다:

# chkconfig –level 345 iscsi on

iSCSI 타겟의 발견

iSCSI 이니시에이터 서비스를 설정하고 양쪽 Oracle RAC 노드에서 실행한 뒤 linux1 노드(파티셔닝 및 볼륨 레이블링을 수행할 노드)에서만 아래의 작업을 수행합니다.

(Openfiler 서버의 iscsi-target 서비스를 시작/재시작함으로써) Openfiler 서버에서 사용 가능한 iSCSI 타겟이 공개되면, 또는 iSCSI initiator 서비스가 클라이언트에서 시작/재시작되면, 클라이언트는 새로운 iSCSI 디스크가 사용 가능함을 인식하게 됩니다. 이제 클라이언트의 /var/log/messages 파일에서 아래와 같은 내용을 확인할 수 있습니다:



Oct 10 19:55:39 linux1 iscsi: iscsid startup succeeded

Oct 10 19:55:39 linux1 iscsid[3073]: Connected to Discovery Address 192.168.2.195

Oct 10 19:55:39 linux1 kernel: iscsi-sfnet:host1: Session established

Oct 10 19:55:39 linux1 kernel: iscsi-sfnet:host0: Session established

Oct 10 19:55:39 linux1 kernel: scsi1 : SFNet iSCSI driver

Oct 10 19:55:39 linux1 kernel: scsi0 : SFNet iSCSI driver

Oct 10 19:55:39 linux1 kernel: iscsi-sfnet:host2: Session established

Oct 10 19:55:39 linux1 kernel:   Vendor: Openfile  Model: Virtual disk      Rev: 0

Oct 10 19:55:39 linux1 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 04

Oct 10 19:55:39 linux1 kernel: iscsi-sfnet:host3: Session established

Oct 10 19:55:39 linux1 kernel:   Vendor: Openfile  Model: Virtual disk      Rev: 0

Oct 10 19:55:39 linux1 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 04

Oct 10 19:55:39 linux1 kernel: scsi3 : SFNet iSCSI driver

Oct 10 19:55:39 linux1 kernel: SCSI device sda: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:39 linux1 kernel:   Vendor: Openfile  Model: Virtual disk      Rev: 0

Oct 10 19:55:39 linux1 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 04

Oct 10 19:55:39 linux1 kernel: iscsi-sfnet:host4: Session established

Oct 10 19:55:39 linux1 kernel: scsi4 : SFNet iSCSI driver

Oct 10 19:55:39 linux1 kernel: scsi2 : SFNet iSCSI driver

Oct 10 19:55:39 linux1 kernel:   Vendor: Openfile  Model: Virtual disk      Rev: 0

Oct 10 19:55:39 linux1 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 04

Oct 10 19:55:39 linux1 kernel: SCSI device sda: drive cache: write through

Oct 10 19:55:39 linux1 kernel:   Vendor: Openfile  Model: Virtual disk      Rev: 0

Oct 10 19:55:39 linux1 kernel:   Type:   Direct-Access                      ANSI SCSI revision: 04

Oct 10 19:55:39 linux1 kernel: SCSI device sda: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:39 linux1 kernel: SCSI device sda: drive cache: write through

Oct 10 19:55:39 linux1 kernel:  sda: unknown partition table

Oct 10 19:55:39 linux1 kernel: Attached scsi disk sda at scsi1, channel 0, id 0, lun 0

Oct 10 19:55:39 linux1 kernel: SCSI device sdb: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:39 linux1 kernel: SCSI device sdb: drive cache: write through

Oct 10 19:55:39 linux1 kernel: SCSI device sdb: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:39 linux1 scsi.agent[3222]: disk at /devices/platform/host0/target0:0:0/0:0:0:0

Oct 10 19:55:39 linux1 scsi.agent[3237]: disk at /devices/platform/host3/target3:0:0/3:0:0:0

Oct 10 19:55:39 linux1 scsi.agent[3208]: disk at /devices/platform/host1/target1:0:0/1:0:0:0

Oct 10 19:55:39 linux1 kernel: SCSI device sdb: drive cache: write through

Oct 10 19:55:39 linux1 scsi.agent[3283]: disk at /devices/platform/host4/target4:0:0/4:0:0:0

Oct 10 19:55:39 linux1 scsi.agent[3311]: disk at /devices/platform/host2/target2:0:0/2:0:0:0

Oct 10 19:55:40 linux1 kernel:  sdb: unknown partition table

Oct 10 19:55:40 linux1 kernel: Attached scsi disk sdb at scsi0, channel 0, id 0, lun 0

Oct 10 19:55:40 linux1 kernel: SCSI device sdc: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:40 linux1 kernel: SCSI device sdc: drive cache: write through

Oct 10 19:55:40 linux1 kernel: SCSI device sdc: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:40 linux1 kernel: SCSI device sdc: drive cache: write through

Oct 10 19:55:40 linux1 kernel:  sdc: unknown partition table

Oct 10 19:55:40 linux1 kernel: Attached scsi disk sdc at scsi3, channel 0, id 0, lun 0

Oct 10 19:55:40 linux1 kernel: SCSI device sdd: 4194304 512-byte hdwr sectors (2147 MB)

Oct 10 19:55:40 linux1 kernel: SCSI device sdd: drive cache: write through

Oct 10 19:55:40 linux1 kernel: SCSI device sdd: 4194304 512-byte hdwr sectors (2147 MB)

Oct 10 19:55:40 linux1 kernel: SCSI device sdd: drive cache: write through

Oct 10 19:55:40 linux1 kernel:  sdd: unknown partition table

Oct 10 19:55:40 linux1 kernel: Attached scsi disk sdd at scsi4, channel 0, id 0, lun 0

Oct 10 19:55:40 linux1 kernel: SCSI device sde: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:40 linux1 kernel: SCSI device sde: drive cache: write through

Oct 10 19:55:40 linux1 kernel: SCSI device sde: 243138560 512-byte hdwr sectors (124487 MB)

Oct 10 19:55:40 linux1 kernel: SCSI device sde: drive cache: write through

Oct 10 19:55:40 linux1 kernel:  sde: unknown partition table

Oct 10 19:55:40 linux1 kernel: Attached scsi disk sde at scsi2, channel 0, id 0, lun 0

Oct 10 19:56:09 linux1 portmap: portmap startup succeeded

위 로그 정보는 클라이언트 (linux1) 가 iSCSI 스토리지 서버 (openfiler1-priv at 192.168.2.195)와 iSCSI 세션을 설정할 수 있게 되었음을 의미합니다..

또 로컬 SCSI 디바이스 네임이 iSCSI 타겟의 호스트 ID와 LUN에 어떻게 매핑되는지 확인할 수 있습니다:

Attached scsi disk sda at scsi1, channel 0, id 0, lun 0

Attached scsi disk sdb at scsi0, channel 0, id 0, lun 0

Attached scsi disk sdc at scsi3, channel 0, id 0, lun 0

Attached scsi disk sdd at scsi4, channel 0, id 0, lun 0

Attached scsi disk sde at scsi2, channel 0, id 0, lun 0

로컬 SCSI 디바이스 네임이 iSCSI 타겟의 호스트 ID와 LUN에 어떻게 매핑되는지 확인하기 위한 또 다른 방법으로 dmesg 커맨드가 있습니다:

# dmesg | sort | grep ‘^Attached scsi disk’

Attached scsi disk sda at scsi1, channel 0, id 0, lun 0

Attached scsi disk sdb at scsi0, channel 0, id 0, lun 0

Attached scsi disk sdc at scsi3, channel 0, id 0, lun 0

Attached scsi disk sdd at scsi4, channel 0, id 0, lun 0

Attached scsi disk sde at scsi2, channel 0, id 0, lun 0

이제 iSCSI 타겟 네임과 로컬 SCSI ID(아래에서는HOST ID로 표시됩니다)의 매핑 정보를 얻기 위해, 클라이언트(linux 1)에서 iscsi-ls 커맨드를 실행합니다:

# iscsi-ls

*********************************************************************

SFNet iSCSI Driver Version …4:0.1.11-3(02-May-2006)

*********************************************************************

TARGET NAME             : iqn.2006-01.com.openfiler:rac1.asm4

TARGET ALIAS            :

HOST ID                 : 0

BUS ID                  : 0

TARGET ID               : 0

TARGET ADDRESS          : 192.168.2.195:3260,1

SESSION STATUS          : ESTABLISHED AT Tue Oct 10 19:55:40 EDT 2006

SESSION ID              : ISID 00023d000001 TSIH c00

*********************************************************************

TARGET NAME             : iqn.2006-01.com.openfiler:rac1.asm3

TARGET ALIAS            :

HOST ID                 : 1

BUS ID                  : 0

TARGET ID               : 0

TARGET ADDRESS          : 192.168.2.195:3260,1

SESSION STATUS          : ESTABLISHED AT Tue Oct 10 19:55:40 EDT 2006

SESSION ID              : ISID 00023d000001 TSIH b00

*********************************************************************

TARGET NAME             : iqn.2006-01.com.openfiler:rac1.asm2

TARGET ALIAS            :

HOST ID                 : 2

BUS ID                  : 0

TARGET ID               : 0

TARGET ADDRESS          : 192.168.2.195:3260,1

SESSION STATUS          : ESTABLISHED AT Tue Oct 10 19:55:40 EDT 2006

SESSION ID              : ISID 00023d000001 TSIH d00

*********************************************************************

TARGET NAME             : iqn.2006-01.com.openfiler:rac1.asm1

TARGET ALIAS            :

HOST ID                 : 3

BUS ID                  : 0

TARGET ID               : 0

TARGET ADDRESS          : 192.168.2.195:3260,1

SESSION STATUS          : ESTABLISHED AT Tue Oct 10 19:55:40 EDT 2006

SESSION ID              : ISID 00023d000001 TSIH e00

*********************************************************************

TARGET NAME             : iqn.2006-01.com.openfiler:rac1.crs

TARGET ALIAS            :

HOST ID                 : 4

BUS ID                  : 0

TARGET ID               : 0

TARGET ADDRESS          : 192.168.2.195:3260,1

SESSION STATUS          : ESTABLISHED AT Tue Oct 10 19:55:40 EDT 2006

SESSION ID              : ISID 00023d000001 TSIH f00

*********************************************************************

로컬 SCSI ID와 iSCSI 타겟 호스트 ID/LUN 간의 매핑 정보, 그리고 iSCSI 타겟 네임과 SCSI ID 매핑 정보를 이용하여 linux1

호스트의 iSCSI 타겟 네임 / 로컬 SCSI 디바이스 네임 매핑을 생성할 수 있습니다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

1 Response

  1. winter jazz 말해보세요:

    winter jazz

페이스북/트위트/구글 계정으로 댓글 가능합니다.