SAP HANA的架構與部署

這一篇講述HANA平台的系統架構與部署的選項

架構

HANA系統平台包含了一個以上的資料庫系統並橫跨多個主機(實體機或虛擬機),這一群的主機是一個cluster架構的模式。
而一個HANA系統的單位是SID(system ID),上面提及可以有一個以上的資料庫,這一個資料庫在HANA上稱tenant database. Tenant DB邏輯上可以與OS分開管理,意即 OS admin 與該tenant DB admin可以使不同的兩個角色。

Single-Host HANA System with Tenant DBs

我們先從單機安裝HANA系統開始解釋,從上圖從可以看到HANA系統架構圖。
1. System admin / Tenant Users : HANA平台的管理者,system admin除了整個HANA system 都可以管控外 tenant 也包含到OS的層級。而tenant User只能管控該DB。這樣的架構可能會是企業內有一個DBA團隊,system admin可能是team leader其他tenant user是團隊成員。

2.管理連線的方式: 從上圖從我們可以看到管理HANA平台或tenant DB是透過SQL client/application or Web client. 其中SQL client/application是SAP的管理工具,例如
SQL client/application — -HANA studio /HDBLCM
web client — cockpit,其中 web service 是HANA XS advanced application server所提供的。

3. Tenant Database
每一個Tenant DB是每一個 SAP Suites相關的服務會存放的資料,所以每個tenant DB的index server的功能就是處理(processing)與儲存(store)資料,由於Tenant DB只跑在index server上故有些功能它是沒有的。例如
compile -這類工作就是SQL的store procedure或是ABAP的程式編譯preprocessor — 大部分是處理非結構化的資料,像是 text analyze / search
等,這些功能會跑在system DB上.
每一個Tenant DB都包含了以下獨立的資料:
●Set of database users
●Database catalog
●Repository
●Persistence
●Backups
●Traces and logs
也只負責自己DB的作業,例如
●Monitoring the database
●Provisioning database users
●Creating and deleting schemas, tables, and indexes in the database
●Backing up the database
●Configuring database-specific parameters in configuration (*ini) files

4. System DB
System DB如圖所示,它只會跑在name server上。system DB儲存了整個HANA system的metadata資料,例如landscape資訊,所有的tenant DB的相關資料(metadata),關system DB有幾個事項需要注意:
4.1一個SAP HANA system (SID)只會有一個system ID.而且system DB不像tenant DB可以同時跑在多個主機上(可以有load balance),他只能同時跑在一台主機上。其他台主機上的system DB都是處於standy by狀態。
4.2 不是full SQL support,雖然叫system DB但有些操作是無法使用SQL command的。
4.3 至少需要create 一個tenant DB有些功能才會啟用。
4.4 不支援 AFL(Application Function Libraries) and SAP LiveCache
4.5 Cross-db access是不支援的,因為儲存不一樣的資料。 system DB儲存tenant DB的監控資料,而tenant DB儲存實際的前端的Application Data。
System DB負責的是整個系統全域性的工作,例如
●Starting and stopping the whole system
●Monitoring the system
●Configuring parameters in configuration (*ini) files at system level
●Setting up and configuring tenant databases, for example:
○Creating and dropping tenant databases
○Disabling features on tenant databases
○Configuring system- and database-specific parameters in configuration (*ini) files
○Scaling out tenant databases by adding services
●Backing up tenant databases
●Recovering tenant databases

單機部屬有幾種模式

Single Component on One System (SCOS)

Multiple Components on One Database(MCOD)

Multiple Components on One System (MCOS)

Multi-Host(Scale out) 示意圖

上面提及得單機的HANA架構,HANA提供了多機架構主要目的有兩個:高擴充性與高可用性。
上面的示意圖我們看到HANA system(SID)橫跨的三台HOST.而host腳色可以分為worker and standby. 從名稱就可以知道worker就是實際運作的主機,standby就會隨時準備接受失效的worker主機。
而在tenant DB(index server)在standby 主機上是不儲存任何資料的,因為所有的資料都是放在shared sotrage上。而在shared storage上可以被所有host access的路徑如下。
/hana/shared/
/hana/data/<SID>
/hana/log/<SID>
參閱下圖

哪麼在這個架構下, tenant DB是如何分散資料的呢?有以下幾種方式
1. 不同的table放在不同的index server
2. table 做partition,意思是這個table可能有很多筆資料。不同筆數的資料放在不同的index server中,例如第一筆到第一千萬筆放第一台第二台再放一千零一萬筆到二千萬筆,依此類推。
3. 將table 做replication, 這個作法是加速DB的 query 或是join的速度。
在create table時預設分散資料的方式是round-robin,但你也可使用自定的規則來分散資料。

部署的選項

HANA的部署選項可以在雲端或地端機房

地端機房

Appliance — 一個box,SAP幫你把軟體都安裝好在硬體,只要做設定就可以了。
TDI (tailored data center) — 這個是使用經過SAP認證的硬體,包含server 及storage然後要自己安裝HANA。

雲端

這一部分可以分兩大塊,一個是SAP自己的雲端另一個是公有雲(AWS/Azure/GCP)等。

在SAP的雲端部分:
SAP Cloud Platform, SAP HANA service — 這是SAP的PaaS服務。
SAP HANA Enterprise Cloud — -SAP幫你建完全屬於你的私有雲(這種應該是很有錢的企業)。

在公有雲部分
SAP HANA Infrastructure Services — -在公有雲上使用SAP認可的VM(詳情可參閱SAP的認證網址
SAP HANA One — 已經存在於CSP上marketplace上,幫你裝好的HANA。
VM開起來可以直接設定使用HANA,但只支援單一的DB instance 及community版本。

--

--

運用"雲端服務"加速企業的數位轉型願景
運用"雲端服務"加速企業的數位轉型願景

Written by 運用"雲端服務"加速企業的數位轉型願景

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。諮詢請來信jason.kao@suros.com.tw. https://facebook.com/jason.kao.for.cloud

No responses yet