[ORACLE] ASM Library

현스·2026년 7월 31일

ORACLE STUDY

목록 보기
16/17

ORACLE ASM Lib

oracle asm library 를 쓰는 이유

부팅 시에 디스크 권한이 root:root 로 바뀜
오라클이 asm disk 를 읽고 쓰려면 -> 그래서 660 으로 접근권한도 지정 해놔줘야 함.
부팅 시에 작업자가 일일이 asmdisk 들을 권한 바꿔줄 수 없음
이름도 정해져있지 않음

그래서 라벨링을 하는 것.

권한도 바로 grid:asmadmin 으로 바꿔주고
이름도 정확히 지정해주고
660 으로 읽고 쓰는걸 가능하게 해야함

ASMLib / ASMFD를 쓸 때

ASMLib를 설치할 때 oracleasm configure 명령어로 설정하면서
설정 파일(/etc/sysconfig/oracleasm)에
ORACLEASM_UID=grid
ORACLEASM_GID=asmadmin

이 저장 된다.

유저아이디 그룹아이디
grid:asmadmin

서버가 부팅될 때 ASMLib 서비스가 작동하면서,
이 설정 값을 읽고 /dev/oracleasm/disks/* 아래에 있는
모든 디스크의 소유자를 grid:asmadmin으로,
권한을 660으로 자동으로 세팅한다

만약 ASMLib를 안 쓰고 Udev를 쓴다면
리눅스 순수 기능인 Udev,
오라클 라이브러리가 개입하지 않기 때문에
사람이 직접 Udev 룰 파일(/etc/udev/rules.d/99-oracle-asm.rules)에 명시해 줘야 한다.
..., OWNER="grid", GROUP="asmadmin", MODE="0660"

따라서 !

부팅시에 소유권한과 접근권한이 리셋되기 때문에
oracle asm 정상 작동을 위해서
라이브러리 서비스가 동작하면서
설정값을 읽고
유저아이디와 그룹아이디를 바꿔주고
접근 권한도 바꿔줌
그리고 디스크 이름도 라벨링 해놨기 때문에
마운트 되는 디스크마다 바로 찾아갈 수 있음 !!
이게 어디 써있냐면 ? 디스크 헤더에

ASMLib 이 디스크 맨 앞 부분 0번 블록(디스크 헤더)
디스크의 이름 오라클 asm 전용이라는 내용이
기록 된다.


디스크 헤더에 써있는 정보와 OS 설정 파일에 써있는 정보가 합쳐져서 일하는 구조

  1. 디스크 헤더(0번 블록)에 써있는 것: "디스크의 이름표(라벨)"
  2. 설정 파일(/etc/sysconfig/oracleasm)에 써있는 것: "권한 규칙"

[스캔] ASMLib가 서버에 연결된 모든 디스크(/dev/sd*)의 헤더(0번 블록)를 읽는다.
      ↓
[인식] 디스크 헤더에서 "어! 너 이름이 'DATA_P001'이구나?" 하고 알아챈다.
      ↓
[생성] /dev/oracleasm/disks/DATA_P001 이라는 접근 통로(파일)를 만든다.
      ↓
[권한] 설정 파일 규칙대로 그 통로의 소유자를 `grid:asmadmin`, 권한을 `660`으로 세팅한다.
profile
˗ˋˏ O R A C L E ˎˊ˗

0개의 댓글