Oracle Database 26ai용 Google Cloud NetApp Volumes iSCSI 스토리지 프로비저닝
Google Compute Engine에서 Oracle Database 26ai의 고가용성을 위해 Google Cloud NetApp Volumes iSCSI 블록 스토리지를 프로비저닝합니다. 이 절차에서는 GCNV Flex Unified 스토리지 풀 생성, 호스트 그룹 정의, 각 데이터베이스 호스트에 대한 iSCSI 볼륨 생성, Linux iSCSI 및 다중 경로 구성, ASM 백업 장치 파티셔닝, `/u01`파일 시스템 마운트 등을 다룹니다.
1단계: GCNV iSCSI 풀 생성
기본 호스트와 대기 호스트에 iSCSI 볼륨을 제공하기 위해 각 데이터베이스 영역에 Flex Unified 스토리지 풀을 하나씩, 총 두 개를 생성합니다. 각 데이터베이스 호스트는 해당 로컬 영역의 풀에서 볼륨을 사용합니다.
-
클라우드 콘솔을 사용하여 두 개의 스토리지 풀을 생성합니다. 아래 표의 사양을 사용하고 각 영역에 대해 생성 프로세스를 반복합니다.
풀 이름 영역 사용 대상 oracle-pool-aus-west1-aoracdb1(운영)oracle-pool-bus-west1-boracdb2(대기)NetApp Volumes → 스토리지 풀 → 각 풀에 대해 생성
-
서비스 수준: Flex(Premium 아님)
-
유형: Unified
-
Zone: 데이터베이스 VM 영역과 일치(
us-west1-a/us-west1-b) -
PSA: 다음에 연결됨
oracle-vpc -
용량: 워크로드에 맞춰 크기가 조정됩니다. 재실행, 백업 또는 복원 작업이 기본 여유 용량(풀당 최대 5120 MiB/s 또는 160K IOPS, 제품 제한)을 초과하는 경우 사용자 지정으로 프로비저닝된 처리량/IOPS를 사용합니다.
-
-
두 풀이 모두
READY상태에 도달할 때까지 기다린 후 진행하십시오. 데이터베이스 사용량에 맞게 풀 크기를 조정하십시오(3단계: GCNV iSCSI 볼륨 생성의 크기는 예시입니다).기본 모드(이 가이드): Flex Unified 풀은 기본 모드(`--mode=default`를 사용합니다. Cloud Console 또는 `gcloud netapp`를 사용하여 풀 및 iSCSI 볼륨을 생성합니다. 볼륨 복제, 스냅샷 및 클론은 Google Cloud API(3단계: GCNV 대기 초기화)를 사용합니다.
2단계: 호스트 그룹 생성
각 VM이 자체 볼륨만 볼 수 있도록 데이터베이스 호스트별로 호스트 그룹을 하나씩 생성하십시오. 독립적인 스토리지를 유지하려면 기본 호스트와 대기 호스트가 GCNV iSCSI 볼륨을 공유해서는 안 됩니다.
-
Cloud Console을 사용하여
oracdb1호스트 그룹을 생성합니다.NetApp 볼륨 → 호스트 그룹 → 생성
-
이름:
oracdb1-hg -
지역:
us-west1 -
유형: iSCSI 이니시에이터
-
OS 유형: Linux
-
호스트:
oracdb1(값/etc/iscsi/initiatorname.iscsi)에서 IQN을 붙여넣으세요. -
설명: "Oracle 기본 호스트 oracdb1"
-
만들기
-
-
oracdb2`에 대해 이름 `oracdb2-hg및 `oracdb2`의 IQN으로 프로세스를 반복합니다. Observer 호스트에는 GCNV 리소스가 필요하지 않습니다.
3단계: GCNV iSCSI 볼륨 생성
각 데이터베이스 호스트에 대해 5개의 GCNV iSCSI 볼륨을 생성합니다. 하나는 `/u01`용이고 나머지 4개는 ASM 백업 장치용입니다. 각 호스트의 볼륨은 해당 호스트 그룹과 함께 로컬 영역의 스토리지 풀에 생성되어야 합니다.
-
`oracdb1`의 5개 볼륨을 `oracle-pool-a`에서 호스트 그룹 `oracdb1-hg`으로 생성하십시오. 아래 표의 사양을 사용하십시오.
GCNV iSCSI 볼륨 크기 사용 다중 경로 별칭 ora_<host>_u01100 GiB
/u01GCNV iSCSI 볼륨 — Grid/Oracle 홈, 스테이징/dev/mapper/ora_<host>_u01ora_<host>_data_0150 GiB
ASM
+DATA/dev/mapper/ora_<host>_data_01ora_<host>_data_0250 GiB
ASM
+DATA(스트라이프)/dev/mapper/ora_<host>_data_02ora_<host>_arch_01100 GiB
ASM
+RECO/dev/mapper/ora_<host>_arch_01ora_<host>_fra_01100 GiB
ASM
+FRA/dev/mapper/ora_<host>_fra_01볼륨 이름: 문자, 숫자, 밑줄만 사용 가능(하이픈 사용 불가).
최소 레이아웃(검증용): 호스트당 LUN 2개(
*_data,*_reco)arch_01p1→+RECO및arch_01p2→`+FRA`는 연구실 환경에서 사용 가능하며, 프로덕션 환경에서는3단계: GCNV iSCSI 볼륨 생성당 5개의 볼륨을 사용합니다. -
`oracdb2`의 5개 볼륨을 `oracle-pool-b`에서 호스트 그룹 `oracdb2-hg`을 사용하여 동일한 사양으로 생성합니다. 각 풀에 대해 NetApp Volumes → Volumes → Create — iSCSI, 올바른 풀 및 호스트 그룹, Linux를 사용합니다. 다음 정보를 기록합니다.
-
iSCSI 포털 IP →
<ISCSI_PORTAL_1>,<ISCSI_PORTAL_2>(기본 풀 포털은 `oracdb1`에 있고, 대기 풀 포털은 `oracdb2`에 있으며 서로 다를 수 있음) -
클라우드 콘솔의 볼륨 일련 번호 — 4단계: GCNV iSCSI 볼륨에 대한 Linux iSCSI 및 다중 경로 구성에서 호스트가 검색한 WWID와 함께 사용
-
4단계: iSCSI 및 다중 경로 구성
각 데이터베이스 호스트에서 iSCSI 및 device-mapper-multipath를 구성하여 두 스토리지 포털 IP를 통해 GCNV 볼륨에 액세스하도록 합니다. `oracdb1`에서 기본 풀의 포털 IP를 사용하여 이 단계를 실행한 다음, `oracdb2`에서 대기 풀의 포털 IP를 사용하여 동일한 단계를 반복합니다. 호스트 송신이 제한된 경우, 각 데이터베이스 VM에서 GCNV iSCSI 포털 IP로 TCP/3260을 허용해야 합니다(2단계: VPC 방화벽 - 세 영역 모두에서 TCP/1521 허용 목록 추가에서의 VM 간 TCP/1521 포함).
-
대상 검색, 로그인 및 노드 시작 정보 유지:
sudo iscsiadm --mode discovery --op update --type sendtargets --portal <ISCSI_PORTAL_1> sudo iscsiadm --mode discovery --op update --type sendtargets --portal <ISCSI_PORTAL_2> sudo iscsiadm --mode node --op update --name node.startup --value automatic sudo iscsiadm --mode node -l all sudo systemctl enable --now iscsid iscsi multipathd sudo iscsiadm --mode session # expect 10 sessions (5 GCNV iSCSI volumes × 2 portals) sudo lsblk -o NAME,SIZE,WWN,VENDOR,MODEL재부팅 후 Oracle을 시작하기 전에 다시 확인하십시오.
sudo iscsiadm --mode session sudo multipath -ll -
Configure
device-mapper-multipath기본 설정값과 블랙리스트 규칙을 사용하여 구성하십시오.sudo tee /etc/multipath.conf >/dev/null <<'EOF' defaults { find_multipaths yes user_friendly_names yes } blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]" devnode "^cciss.*" } EOF sudo systemctl enable --now multipathd sudo multipath -ll -
호스트에서 발견한 WWID 별칭을 `/etc/multipath.conf`에 추가합니다(추측하지 마십시오 — `multipath.conf`는 셸 변수를 확장하지 않습니다). WWID 검색:
sudo multipath -ll for dev in /dev/sd*; do [ -b "$dev" ] || continue printf '%s: ' "$dev" sudo /usr/lib/udev/scsi_id --whitelisted --device="$dev" 2>/dev/null || true echo done해당 호스트에 대한 구체적인 별칭을
/etc/multipath.conf`에 추가한 다음 `sudo systemctl restart multipathd.`oracdb1`에서 다음을 추가합니다.
multipaths { multipath { wwid <host-discovered-wwid-for-u01> alias ora_oracdb1_u01 } multipath { wwid <host-discovered-wwid-for-data-01> alias ora_oracdb1_data_01 } multipath { wwid <host-discovered-wwid-for-data-02> alias ora_oracdb1_data_02 } multipath { wwid <host-discovered-wwid-for-arch-01> alias ora_oracdb1_arch_01 } multipath { wwid <host-discovered-wwid-for-fra-01> alias ora_oracdb1_fra_01 } }`oracdb2`에서 `ora_oracdb2_*` 별칭에 동일한 패턴을 사용한 다음:
sudo systemctl restart multipathd ls -l /dev/mapper/ora_$(hostname -s)_*
5단계: ASM 장치 분할
4개의 ASM 백업 장치( u01 제외)를 각각 ASM 사용을 위한 GPT 파티션 하나씩으로 분할한 다음, 그리드 소유권에 대한 udev 규칙을 구성하십시오. 각 데이터베이스 호스트에서 이러한 단계를 실행하십시오.
-
4개의 ASM 백업 장치를 GPT로 파티션하고 파티션을 확인합니다.
HOST=$(hostname -s) # oracdb1 on the primary, oracdb2 on the standby for dev in /dev/mapper/ora_${HOST}_data_01 \ /dev/mapper/ora_${HOST}_data_02 \ /dev/mapper/ora_${HOST}_arch_01 \ /dev/mapper/ora_${HOST}_fra_01; do sudo parted -s "$dev" mklabel gpt sudo parted -s "$dev" mkpart primary 0% 100% done sudo partprobe sudo systemctl reload multipathd ls /dev/mapper/ora_${HOST}_*p1 # expect 4 partitions -
그리드 소유권을 할당하고 변경 사항을 트리거하도록 udev 규칙을 구성합니다.
HOST=$(hostname -s) sudo tee /etc/udev/rules.d/99-oracle-asm.rules >/dev/null <<'EOF' KERNEL=="dm-*", ENV{DM_UUID}=="part?-mpath-*", ENV{DM_NAME}=="ora_oracdb*_*p?", \ OWNER="grid", GROUP="asmadmin", MODE="0660" EOF sudo udevadm control --reload-rules for part in /dev/mapper/ora_${HOST}_*p1; do dm=$(readlink -f "$part" | xargs basename) sudo udevadm trigger --action=change --name-match="/dev/${dm}" done sudo udevadm settle ls -lL /dev/mapper/ora_${HOST}_*p1 # grid:asmadmin 0660
6단계: 포맷 및 마운트 /u01
GCNV 볼륨을 ora_<host>_u01 XFS로 포맷하고 /etc/fstab`에서 UUID를 사용하여 영구적으로 마운트합니다. 해당 `/u01 파일 시스템에는 Grid 홈, Oracle 홈 및 스테이징 파일이 저장됩니다.
-
다중 경로 장치를 XFS로 포맷하고 해당 장치의 UUID를 캡처합니다.
HOST=$(hostname -s) U01_DEV=/dev/mapper/ora_${HOST}_u01 ls -l "$U01_DEV" sudo mkfs.xfs -f "$U01_DEV" U01_UUID=$(sudo blkid -s UUID -o value "$U01_DEV") -
UUID 기반 마운트 항목을 `/etc/fstab`에 추가하고 파일 시스템을 마운트하십시오.
sudo mkdir -p /u01 echo "UUID=${U01_UUID} /u01 xfs defaults,_netdev,nofail,x-systemd.requires=iscsi.service,x-systemd.requires=multipathd.service,x-systemd.after=iscsi.service,x-systemd.after=multipathd.service 0 0" | sudo tee -a /etc/fstab sudo mount -a -
Grid 및 Oracle 소프트웨어에 적합한 소유권으로 디렉터리 구조를 생성하십시오.
sudo mkdir -p /u01/app/oraInventory /u01/app/26ai/grid /u01/app/grid \ /u01/app/oracle/product/26ai/db_1 /u01/stage sudo chown -R grid:oinstall /u01/app/oraInventory /u01/app/26ai /u01/app/grid sudo chown -R oracle:oinstall /u01/app/oracle /u01/stage sudo chmod -R 775 /u01/app /u01/stage한 번 재부팅하고
/u01마운트가 Oracle 소프트웨어 설치 전에 완료되는지 확인합니다.
다음 단계
준비된 호스트에 Oracle Grid Infrastructure 및 Database 바이너리를 설치하려면 두 호스트 모두에서 Oracle Grid Infrastructure 및 Oracle Database 소프트웨어를 설치합니다.로 이동하십시오.