ASM Improvements

ASM등장배경

-- 저장장치는 전산시스템을 생각할 때 빼 놓을 수 없는 구성요소
-- 기업 활동에서 파생되는 정보자산이 시간이 지나면서 가히 기하급수적으로 증가
-- 스토리지의 공간 할당과 성능, 안정성과 보안 유지를 위한 관리 필요
-- 서비스 다운타임을 최소화하면서 확장해야 한다는 관리포인트를 가지고 있음
– DBMS를 위한 스토리지는 그 요구사항에 맞게 공간 할당하고 안정성과 성능을 고려하여 구성해야 하고 유지 관리해야 함
-- 대규모의 데이터를 다루어야 하는 전산환경에서 매우 많은 시간이 소요됨

Oracle11g의 ASM 개요

– Oracle11g의 ASM은 볼륨매니저를 대체할 수 있는 통합 스토리지 관리 솔루션
– Oracle이라는 DBMS의 특성을 반영하여 관리포인트를 최소화
-- 성능 향상을 최대로 끌어올리면서 최적의 스토리지 구성이 가능

ASM의 기능개요

-- 데이터베이스에서 사용하는 모든 파일에 대한 자동 저장공간 관리기능 제공
(Control File,Archive Log File, Redo Log File, Data File, SPFILE 등)
-- 테이블 스페이스 공간을 위해 디스크를 추가하는 작업
-- 테이블들을 재편성하는 작업
-- 볼륨메니저를 이용해 Logical 볼륨을 생성하는 작업
– Disk I/O 튜닝 작업




ASM의 특/장점

-- 추가 비용 없이 데이터베이스 파일에 대한 클러스터 파일 시스템 및 볼륨메니저 기능을 제공
-- 서버 레벨의 Oracle RAC와 함께 Grid 환경을 가능하게 하는 스토리지 레벨의 중요 기술 인자
-- 범용 클러스터 파일 시스템보다 관리가 쉬우며 Raw 디바이스 성능에 비해 뒤지지 않는 성능
– Oracle 데이터베이스 파일 관리를 위한 3rd-Party 볼륨 메니저 및 클러스터파일시스템 대체가능
-- 스토리지 Provisioning, 스토리지 Array Migration, 스토리지 Consolidation에 대한 복잡성 제거
– SQL*Plus, Enterprise Manager, OS Like Command Line 인터페이스 제공을 통해 관리용이
-- 완벽한 디스크 I/O 분산을 통해 기존 고객들이 Manual I/O 튜닝을 시도한 Disk Hot Spot 제거
-- 데이터 Sizing에 관계없이 대용량 데이터베이스(VLDB)에서도 ASM은 성능 저하 없이 운영가능
– EM을 이용하여 Cluster File System 또는 Raw Device에서 ASM으로 쉽게 Migration(또는 반대로)



ASM의 가용성(MAA)

-- 자동 Mirror 디스크에 대한 복구, Resynchronization
– Rolling Upgrade, Patch을 통해 지속적인 데이터베이스 서비스가 가능
-- 디스크 교체로 인한 서비스 중지 시간을 제거, Online상에서 재구성 가능



ASM 중요기능

ASM의 새로운 기능(Automatic Storage Management New Feature)

확장성 및 성능향상

-- 대용량 DB에 대한 확장성과 성능 향상(Improved scalability and performance for VLDB)
-- 빠른 Mirror 재동기화(Fast mirror resynchronization)
-- 클러스터 내 읽을 Mirror 지정(Preferred mirror read in a cluster)
– Supports for larger allocation units(AU)
-- 리밸런스 속도 개선(Fast rebalance)



관리성 강화

– Rolling Upgrade 및 Patching
-- 테이블레벨 마이그레이션 위저드(Table level migration wizard in EM)
-- 새로운 커맨드라인 인터페이스 (New ASMCMD commands)
– ASM을 위한 새로운 관리자 (New SYSASM privilege separate from the SYSDBA privilege
-- 디스크그룹 마운트를 위한 보다 유연한 옵션(More flexible FORCE option to MOUNT disks group)



ASM 중요기능 상세

확장성 및 성능향상

1. Fast Mirror Resync
– ASM Fast Mirror Resync을 통해 Failed 디스크 복구에 필요한 시간 감소
-- 능동적인 유지보수 작업(PM)을 위한 Disk 교체 시 유효
– Disk가 순간적인 Failure로 인하여 Offline상태로 전환되었을 때, ASM은 그 시간 동안의 변경된 Extent를 추적 관리하여 Failed Disk가 복구 된 후, 변경된 Extent에 대해서만 Resync하므로 보다 빨리 Recover 할 수 있다. (단, Disk Corruption은 제외.)

순간 Failure 발생원인

케이블, 전원, host bus adaptor, disk controller등에 의해 발생





2 VLDB Support
다양한 크기의 Extent 지원으로 보다 큰 ASM File을 사용뿐만 아니라, SGA 메모리 절감, ASM File에 대한 생성, I/O 작업에 대한 성능이 향상되어 VLDB를 효과적으로 지원할 수 있다.



3 Faster Rebalance with Restricted Mount Option
– RAC 환경에서 Restricted Mode로 Disk Group을 Mount 할 경우, 해당 Disk Group은 한 노드에서만 독점적으로 Mount될 수 있다.
-- 클라이언트 사용자는 해당 Disk Group에 대한 Access 할 수가 없으며, 이는 SYSASM Role을 가지는 ASM 관리자가 해당 ASM Instance내의 Disk Group에 대한 유지보수 위해서 이다.
– RAC 환경에서의 ASM Extent에 대한 message 교환의 Overhead를 제거하여, Disk I/O Rebalance 속도 개선으로 전체 작업 속도가 향상 된다.

4 Preferred Mirror Read
-- 디폴트는 정상적인 운영 상태의 ASM Instance는 항상 Primary Disk를 읽는다
– Disk Redundancy 구성된 ASM 환경에서, Primary Disk가 문제가 발생 시 특정 Mirror Copy Disk(즉 Preferred Read Failure Group)를 읽도록 지정가능
– Extended Oracle RAC를 구성하였을 경우에 유용하다. 즉 원격지와의 물리적 거리로 인한 네트워크 Overhead를 줄이기 위해 Local Mirror Copy Disk를 Remote Copy Disk보다 우선적으로 지정

관리성 강화

1 ASM 롤링 업그레이드 및 패칭
– ASM Rolling Upgrade 기능을 통해 RAC 각 노드에서 독립적으로 Upgrade 및 Patching 가능

  • 선수 작업으로 ASM Rolling Upgrade 및 Patching을 하기 전에 반드시 클러스터 노드 내의 ASM Instance를 'Rolling Migration Mode' 상태로 전환해야 한다(ASM Instance의 버전이 상이한 환경에서도 ASM 기능을 가능하게 위한 것이다.)
    • ASM Upgrade 및 Patching 수행 전, Upgrade 버전에 상응하는 Oracle Clusterware를 Upgrade 해야 된다.
    • 작업 수행 시, 모든 데이터베이스 파일에 대한 접근이 가능하기 때문에 온라인 작업이 수행 가능. 단, ASM Rolling Upgrade 및 Patching 도중에는 Disk Group에 대한 구성 변경은 불가


      {sql:dataSource=ReportDS}
      --ASM Instance 상태에 대한 정보조회
      SELECT SYS_CONTEXT('sys_cluster_properties','cluster_state') from dual;

--ASM Instance에 대한 Upgrade 작업을 수행
ALTER SYSTEM START ROLLING MIGRATION TO NUMBER(해당 버전);

--ASM Instance를 Shutdown하고 해당 버전으로 Upgrade를 순차적으로 수행
...update process...

--ASM Instance에 대한 Upgrade작업이 종료
--'Rolling Migration Mode' 이전 상태로 전환
ALTER SYSTEM STOP ROLLING MIGRATION;
{sql}



관리성 강화

1. New ASMCMD Commands
새로운 ASMCMD 명령어를 통해 ASM Instance Crash에 대한 Recovery, Bad Block에 대한 Repair, File Copy 등에 대한 작업이 개선되었다.

ASMCMD cp
ASMCMD cp 명령어를 통해 ASM Disk group과 OS File System 간, ASM Disk group들간의 File Copy가 가능하다. RMAN으로만 백업 받을 수 있는 예전 버전의 한계를 극복

아래는 Copy 가능한 경우의 예이다.

ASM Disk GroupOS File System
OS File SystemASM Disk Group
ASM Disk GroupAnother ASM Disk Group on the same server
ASM Disk GroupASM Disk Group on a remote server


ASM File을 백업 디렉토리(/backup)로 Copy하는 예


Asmcmd cp +DG1/VDB.CTF1 /backups

ASMCMD> cp + DG1/vdb.ctf1 /backups/vdb.ctf1
Copying file(s)...
Copying file(s)...
Copying file(s)...
File, /backups/vdb.ctf1, copy committed.
\\

ASMCMD Disk Group metadata backup and restore
– ASM Disk Group metadata에 대한 백업 및 복구를 할 수 있다. 즉 disk path, disk names, failure groups, attributes, templates 및 alias 디렉토리 구조에 대한 정보에 대한 백업을 통해 복구할 수 있다.

md_backup 명령어를 이용하여 백업


ASMCMD>md_backup -b _backup_file_ -g _data_
Disk Group to be backuped up : DATA#

//-b 옵션은 백업정보를 포함하는 파일을 명시하고 -g는 백업 받아야 할 Disk Group를 명시

md_ restore 명령어를 이용하여 복구


ASMCMD>md_restore -b jfv_backup_file -t full -g data
Disk Group to be restored: DATA#
ASMCMDAMBR-09358, Option -t newdg specified without any override options.
Current Diskgroup being restored: DATA
Diskgroup DATA created!
User Alias directory +DATA/jfv
Created!



ASMCMD lsdsk
– ASM disk 정보를 보여주는 명령어이다. 이 명령어는 두 가지 모드로 실행할 수 있다. (Connected 또는 Non-Connected)
– Connected Mode에서는 ASMCMD는 disk 정보 조회를 위해 V$ 그리고 GV$ 뷰를 이용한다.
– Non-Connected Mode에서는 ASMCMD는 disk headers 스캔을 통해 disk 정보를 조회한다.
– Lsdsk명령어는 기본적으로 Connected Mode에서 disk 정보를 조회

lsdsk 사용예


ASMCMD>md_restore -b jfv_backup_file -t full -g data
ASMCMD>lsdsk -kspt '/dev/sdb6'



ASMCMD remap
– ASM Disk Group에 대한 Read 작업이 I/O 에러로 Fail 발생 시, ASM은 Normal 또는 High 가용성 모드에서 Mirrored Extent에서 I/O 작업가능
– ASM은 Fail이 발생한 Extent을 Mirrored된 Extent에 있는 data를 이용해 새로운 Extent로 remapping한다.
– Remapping이 성공적으로 끝나면 Failed Extent는 unusable 상태로 Marking 되게 된다.

remap 사용예


ASMCMD> asmcmd remap DATA DATA_00015000_7500



2 SYSASM Role
– SYSMAN Role은 ASM 관리 수행을 위해 Oracle 11g에서 새롭게 선보이는 기능이다
--기존의 SYSDBA Role 대신 SYSMAN Role 을 사용하여, 데이터베이스 관리와 ASM 관리를 구분
– SYSMAN Role 과 SYSDBA Role의 OS Group은 동일하다. 디폴트로 dba그룹이며, 변경 가능하다.
-- SYSDBA Role 이용하여 ASM File에 대한 View 내지 Manipulation은 가능하나, SYSASM Role 이용하여 ASM Disk Group에 대한 Configuration은 불가.
– SYSDBA Role을 이용하여 ASM Disk Group에 대한 Configuration을 변경하는 Command를
실행할 경우 Oracle Alert에 Warning Message가 쓰여진다.

3 Mount FORCE Disk Group
– Oracle 11g에서 새로운 Force 옵션을 이용하여 소실된 Disk 및 Failure Group을 가지고 있는 불완전한 Disk Group을 Mount 할 수 있다.


ALTER DISKGROUP _DATA_ MOUNT FORCE ;

– Force 옵션으로 Mount된 Disk Group은 하나 또는 그 이상의 Offline Disk를 보유할 수 있으며. 가용하지 않은 Disk들이다.
– DISK_REPAIR_TIME이 종료되기 전에 해당 Disk에 대한 정상 조치를 해야 한다.
-- 만약 정상 조치가 실패할 경우, 해당 Disk는 Disk Group에서 빠져나가 관련 File들이 Rebalance 작업이 필요하다.

결론

ASM은 Oracle에서 DBMS의 스토리지 사용 패턴에 최적화시킨 스토리지 그리드 솔루션이다.
물리적인 디스크에서 Oracle까지의 단계에 이르기까지 작업대상을 ASM 하나로 통합해 줌으로써 작업의 소요시간을 줄일 수 있다
일반적으로 발생하는 스토리지 관리 작업을 자동화해 버리거나 간단한 방법으로 수행할 수 있도록 지원
Oracle에서 일으키는 I/O에 대해 최적의 성능을 낼 수 있도록 구성하고 I/O 경합을 피할 수 있도록 자동 데이터 분산을 지원합니다.
이전 버전의 ASM은 스토리지에 접근하는 경로를 ASM이나 RMAN, 데이터베이스를 통해야 했었지만 다양한 방법으로 백업이 가능하고 Command Line에서 접근하여 관리할 수 있는 등 많은 개선사항이 있다.

???

어째 ASM카탈로그를 옮긴 것 같지만 왜 ASM적용하는 것을 꺼려하는지 어떻게 하면 실제로 이득이 있는지 확인해 볼 수 있는지 논의 해보자!