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.
- Filesystem Size Used Avail Use% Mounted on
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분 예상
- Restart time은 상당히 줄어들 수 있음 (DB Size와 상관없음)
- OS restart가 필요한 경우 PMEM(Persistent memory) 솔루션이 필요 -> 검토하기 힘듦
- DB restart를 요구하는 계획된 유지보수와 함께 가장 유용하게 사용 가능
- Primary instnce가 후속 작업을 위해 주요 columnar store를 활성상태로 유지하는 replication 시나리오
- Main columnar store가 TMPFS로 정의된 영역에 유지
- 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>
- # mkdir -p /hana/tmpfs0/<SID>
- Make them accessabile
- chown -R <SID>adm:sapsys /hana/tmpfs*/<SID>
chmod 777 -R /hana/tmpfs*/<SID>
- chown -R <SID>adm:sapsys /hana/tmpfs*/<SID>
- mount에서 size= 옵션을 이용해서 TMPFS size의 limit을 지정할 수 있음
- 해당 내용이 /etc/fstab에 적용해 놓아야 함
- NUMA 환경에서 create and mount TMPFS filesystems (NUMA Node 2개인 환경)
- 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= 옵션 사용)
- NUMA node의 개수를 위해서 파라미터 지정 필요
'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 |