본문 바로가기

Database

[HANA] HANA 2.0 SPS04 - TMPFS

TMPFS란

  • 일반적인 개요
    • 많은 Unix 계열 OS의 temporary file storage 장치에 대한 공통 이름
    • Mount된 file system으로 표시, 영구 저장장치 대신 휘발성 메모리에 저장됨
      • RAM Disk와 비슷한 구성
    • TMPFS에 저장된 모든 내용은 hard drive에 파일이 생성되지 않음 -> Temporary
      • 메모리 공간이 부족한 경우 Swap공간이 백업 저장소로 사용됨
      • Reboot하면 TMPFS의 모든 데이터는 lost됨
    • TMPFS가 사용하는 메모리는 포함된 파일을 수용하기 위해서 grow/shrink 되며 Swap sapce로 swap될 수 있음
    • 많은 Unix 배포판은 기본적으로 file system의 /tmp 또는 shared memory에 대한 TMPFS를 활성화하고 사용함
    • This can be observed with df as in this example:
      • Filesystem Size     Used    Avail    Use%    Mounted on
        tmpfs          256M  688K    256M  1%         /tmp
      • On some Linux distributions (e.g. Debian, Ubuntu), /tmp is a normal directory, but /dev/shm uses tmpfs.

 

 

Fast Restart Option - Using TMPFS

  • 개요
    • Main columnar store가 TMPFS로 정의된 영역에 유지
      • Standard temporary filesystem feature by OS level in DRAM
      • 추가적인 copy는 생성되지 않음 -> data는 이 위치를 사용
      • Main columna store는 HANA의 영구 메모리의 90~95%를 차지함
      • Row store는 비슷한 옵션을 제공하지만 HANA 1.0 SPS11부터 공유 메모리 사용을 기반으로 함
    • DB가 restart 되면 이 Memory structure는 보호되고 재사용될 수 있음
      • Restart time은 상당히 줄어들 수 있음 (DB Size와 상관없음)
        • 남아있는 DRAM structure와 해당되는 restart process의 크기에 따라 1~5분 예상
    • OS restart가 필요한 경우 PMEM(Persistent memory) 솔루션이 필요 -> 검토하기 힘듦
    • DB restart를 요구하는 계획된 유지보수와 함께 가장 유용하게 사용 가능
      • Primary instnce가 후속 작업을 위해 주요 columnar store를 활성상태로 유지하는 replication 시나리오
  • Persistent Memory와 비교
    • Persistent Memory (PMEM)가 있는 서버를 사용할 수 없는 환경을 위해
    • PMEM으로 얻을 수 있는 비용효율이 아닌 더 적은 downtime을 제공함
    • 두가지 feature를 비교해보면 MAIN data fragments는 persistent storage로부터 다시 읽지 않고 재사용될 수 있음
시나리오 Fast restart option Persistent Memory
HANA restart Yes Yes
HANA service restart Yes Yes
HANA upgrade / service patch Yes Yes
Operating system upgrae / service patch No Yes
Server reboot (Plnned mainternace) No Yes
Server reboot (HW failure) No Yes
Power outage No Yes
BIOS/firmware update No Yes
HW upgrade w/o Persistent Memory replacement No Yes

 

  • OS Level 준비사항
    • NUMA 환경에서 create and mount TMPFS filesystems (NUMA Node 2개인 환경)
      • # mkdir -p /hana/tmpfs0/<SID>
        # mount tmpfs<SID>0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/<SID>
        # mkdir -p /hana/tmpfs1/<SID>
        # mount tmpfs<SID>1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/<SID>
    • Make them accessabile
      • chown -R <SID>adm:sapsys /hana/tmpfs*/<SID>
        chmod 777 -R /hana/tmpfs*/<SID>
    • mount에서 size= 옵션을 이용해서 TMPFS size의 limit을 지정할 수 있음
    • 해당 내용이 /etc/fstab에 적용해 놓아야 함

 

  • Configuration changes on SAP HANA
    • NUMA node의 개수를 위해서 파라미터 지정 필요
      • basepath_persistent_memory_volumes = /hana/tmpfs0/<SID>;/hana/tmpfs1/<SID>
    • HANA restart 후에 자동으로 TMPFS에 columnar store main이 위치하게 됨
    • TMPFS의 제한 (main memory storage의 사용 제한)
      • persistent_memory_global_allocation 파라미터 사용
      • mount명령으로 OS 수준에서 적용 (size= 옵션 사용)

'Database' 카테고리의 다른 글

[HANA] HANA 2.0 SPS04 - Multi-Target Replication  (0) 2019.04.15
[HANA] HANA 2.0 SPS04 - Secondary Time Travel  (0) 2019.04.15
[HANA] MVCC and GC  (0) 2019.04.14
[HANA] HANA Backup & recovery  (0) 2019.04.14
[HANA] High availability support  (0) 2019.04.12