大型主機系統的核心概念在於其支援多種不同作業系統的能力,並透過虛擬化技術有效分配資源。本文探討 z/OS 的特性,例如多工處理和 Spooling,並簡述其他作業系統如 z/VSE、z/TPF 和 z/VM 的應用場景。同時也介紹了 Linux 和 KVM 在大型主機環境下的角色,以及現代 IBM Z 大型主機的處理器架構,包含 CPU、記憶體和通道的協同運作,以及邏輯分割區(LPAR)如何提升資源利用率和系統可靠性。
IBM 大型主機作業系統的特性與多樣性
IBM 大型主機(Mainframe)支援多種作業系統,每種都有其獨特的設計目標和應用場景。其中,z/OS 是最為人熟知的作業系統之一,但並非唯一選擇。本文將探討 z/OS 及其他五種主要作業系統:z/VSE、z/TPF、z/VM、Linux 和 KVM,並分析它們的技術特點和應用場景。
z/OS:企業級運算的核心
z/OS 是 IBM 為大型主機設計的高階作業系統,具備高度的穩定性、安全性和效能。它支援多工處理(Concurrency),允許同時執行多個程式,充分利用 CPU 資源。z/OS 還具備 Spooling 功能,用於管理列印等 I/O 操作,確保系統的高效運作。
程式碼範例:z/OS 上的 COBOL 程式
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY "Hello, World!"
STOP RUN.
內容解密:
IDENTIFICATION DIVISION:定義程式的基本資訊,如程式名稱。PROGRAM-ID:指定程式的名稱為HELLO-WORLD。PROCEDURE DIVISION:定義程式的邏輯部分。DISPLAY:輸出字串 “Hello, World!"。STOP RUN:終止程式執行。
其他作業系統的多樣性
除了 z/OS,IBM 大型主機還支援多種其他作業系統,以滿足不同的業務需求。
z/VSE:適用於中小型企業
z/VSE 是為小型企業設計的作業系統,具有較小的資源佔用。它支援安全的交易處理和批次工作負載,並與 IBM 的 CICS 和 Db2 系統整合良好。
z/TPF:高效能交易處理
z/TPF 是為高交易量環境設計的作業系統,最初用於航空公司的訂票系統。它使用組合語言開發,以追求極致的效能。
z/VM:虛擬化技術的先驅
z/VM 是 IBM 於 1972 年推出的虛擬化作業系統,採用 Type 1 Hypervisor 架構,可直接安裝在實體機器上,提供高效能和穩定性。
Linux:開放原始碼的選擇
Linux 是由 Linus Torvalds 於 1991 年開發的開放原始碼作業系統。IBM 於 2000 年開始將 Linux 移植到大型主機上,並在 2015 年推出專用的 LinuxONE 主機。
KVM:核心級虛擬化
KVM 是 Linux 核心的一部分,提供 Type 1 Hypervisor 功能。IBM 將 KVM 用於大型主機,以支援 Linux 工作負載的佈署和 x86 伺服器的整合。
處理器架構與虛擬化技術
現代 IBM Z 大型主機的處理器架構包含 CPU、主記憶體和通道。CPU 負責指令處理,並透過快取提升效能。通道則負責 I/O 操作,透過高速光纖連線提升資料傳輸效率。
此外,IBM Z 支援邏輯分割區(LPAR),可將一台實體主機劃分為多個獨立的虛擬主機,提升資源利用率和系統可靠性。
大型主機(Mainframe)技術解析
LPAR 技術與系統架構
大型主機的 LPAR(邏輯分割區)技術允許單一實體機器分割成多個獨立的虛擬系統。每個 LPAR 擁有自己的作業系統和軟體,除了 z/OS 外,其他作業系統不會察覺到其他 LPAR 的存在。每個分割區具有完全的獨立性,為了實作跨機器無縫運作,z/OS 使用跨記憶體服務(cross-memory services)來處理不同 LPAR 的任務。
資源分配具有彈性,例如,可以為每個 LPAR 分配一個或多個處理器,或將處理器分散到多個 LPAR。此外,還可以為資源分配權重,例如,LPAR1 可以獲得兩倍於 LPAR2 的處理器時間。
LPAR 技術的優勢
LPAR 架構的優勢之一是可靠性。如果一個分割區故障,其他分割區可以接管其任務。開發者在使用的過程中,不會察覺到與其他主機系統的差異。
LPAR 技術依賴於 Processor Resource/Systems Manager(PR/SM),這是一種嵌入硬體的韌體。PR/SM 為主機提供內建虛擬化技術,能夠有效利用 CPU 資源和儲存空間。
系統複合體(Sysplex)技術
另一項重要技術是系統複合體(sysplex),它允許 LPAR 之間進行通訊和叢集。sysplex 可以實作 z/OS 的多個例項(通常稱為映像),從而更好地分享工作負載、管理資源和處理還原。有兩種型別的 sysplex:基本(或單一)和平行。基本 sysplex 允許獨立系統透過高速光纖電纜連線,例如與使用 Db2、IMS 或 CICS 的應用程式合作。
平行 sysplex 由耦合設施(CF)LPAR 管理,可以是獨立的 LPAR 或專用的硬體裝置。
磁碟儲存技術
磁碟儲存對於大型主機至關重要,因為它們需要管理龐大的資料量。磁碟機由一疊圓形磁碟組成,磁碟表面分為多個磁軌和扇區。IBM 將其主機磁碟機稱為直接存取儲存裝置(DASD),並使用「柱面」一詞代替「扇區」。
為了存取資料,磁碟機使用致動器移動到特定扇區的位置。由於每個扇區都有記憶體位址,因此可以精確存取資料。為了提高存取速度,主機開發者尋求減少磁碟機存取次數的方法。DASD 透過陣列連線到主機,並使用快取技術加速存取。
批次處理與線上交易處理
早期的大型主機主要採用批次處理方式,例如在營業時間內輸入資料,然後在夜間處理所有資料。另一種常見的應用是薪資處理,在一段時間內收集資料,然後在期末進行處理。
批次處理對於管理大量資料是一種成本效益高的解決方案,但在某些情況下,需要即時處理交易,這就是線上交易處理(OLTP)。例如,Sabre 平台用於處理航空公司預訂,CICS 系統用於即時交易處理,能夠處理高達一億筆交易,並與 Db2 等資料函式庫連線。
大型主機趨勢
根據 BMC Software 的年度調查,大型主機行業前景看好。超過一半的受訪者表示其組織的交易量增加,47% 的受訪者報告資料量增加。調查結果還顯示:
- 90% 的受訪者認為大型主機將是未來增長和長期應用的關鍵平台。
- 大約三分之二的大型組織有一半以上的資料存放在大型主機環境中。
- 合規性和安全性已成為最重要的考慮因素。
- 約 56% 的受訪者正在大型主機上使用某種形式的 DevOps。
大型主機「店鋪」
管理大型主機系統的 IT 組織被稱為「店鋪」。每個店鋪都有其自己的方法、策略、標準和要求,但某些角色是共通的。主要角色包括:
- 系統程式設計師:負責大型主機和 z/OS 的工程和行政工作,包括安裝、組態、培訓和維護。
- 系統管理員:在某些組織中,這個角色與系統程式設計師相似,但在大型公司中,角色更為專門化。系統管理員通常花更多時間處理日常管理工作。
內容解密:
本章節詳細介紹了大型主機的 LPAR 技術、sysplex 技術、磁碟儲存技術、批次處理與線上交易處理,以及大型主機的趨勢和「店鋪」中的主要角色。透過瞭解這些技術和趨勢,可以更好地掌握大型主機的工作原理和應用場景。
主機開發環境介紹
主機(Mainframe)開發環境與現代的開發環境有著顯著的不同。由於主機通常涉及關鍵業務資料,因此其開發和維護需要特殊的工具和流程。
存取主機系統
要存取主機系統,首先需要由僱主提供必要的登入憑證。由於主機包含關鍵資料,因此通常會有嚴格的安全檢查,甚至需要進行背景調查。常見的存取方式包括:
- TN3270 模擬器:最常見的存取方式,可以直接連線到主機。
- 檔案傳輸協定(FTP):用於管理主機上的檔案。
- Secure Shell(SSH)客戶端:例如 PuTTY,可以建立一個 Unix 系統會話。
當你第一次登入主機時,需要輸入使用者 ID 和密碼。登入後,z/OS 會發出許多訊息,如果訊息過多無法在一頁顯示完畢,會在底部顯示三個星號(*),此時按下 Enter 鍵即可檢視下一頁。
TSO 與 ISPF 簡介
TSO(Time Sharing Option)
TSO 是根據命令列的系統,沒有圖形介面。它提供了對 z/OS 的原生存取能力,是其他技術(如 ISPF)的基礎。雖然許多主機開發者不常直接使用 TSO,但瞭解 TSO 仍然很重要。你可以在 ISPF 中按下 X 鍵離開程式並進入 TSO 模式。
TSO 提供了多種命令,例如:
profile
time
send 'test message' user(tt25)
listc
rename 'tt103.invoices.data' 'tt104.invoices.data'
edit 'myfile.jcl.new' cobol
內容解密:
profile:顯示使用者的基本資訊。time:顯示目前時間。send 'test message' user(tt25):向使用者 tt25 傳送訊息。listc:列出目前 TSO 會話中可用的資料集。rename:重新命名資料集。edit 'myfile.jcl.new' cobol:編輯資料集並使用 COBOL 語法。
ISPF(Interactive System Productivity Facility)
ISPF 是一個根據選單的系統,由不同的面板組成,可以視為類別似網頁的介面。儘管 ISPF 看起來有些過時,但它非常快速和高效。大部分的主機開發工作都會在 ISPF 的主要選項選單中進行。
主機開發
儘管主機開發環境看似傳統,但其對於許多大型企業來說仍然是不可或缺的一部分。隨著技術的發展,主機系統也在不斷進化,提供更多現代化的工具和介面來提高開發效率。
圖表說明
以下是一個簡單的流程圖,展示了存取主機系統的一般步驟:
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title IBM大型主機作業系統特性與多樣性
package "安全架構" {
package "網路安全" {
component [防火牆] as firewall
component [WAF] as waf
component [DDoS 防護] as ddos
}
package "身份認證" {
component [OAuth 2.0] as oauth
component [JWT Token] as jwt
component [MFA] as mfa
}
package "資料安全" {
component [加密傳輸 TLS] as tls
component [資料加密] as encrypt
component [金鑰管理] as kms
}
package "監控審計" {
component [日誌收集] as log
component [威脅偵測] as threat
component [合規審計] as audit
}
}
firewall --> waf : 過濾流量
waf --> oauth : 驗證身份
oauth --> jwt : 簽發憑證
jwt --> tls : 加密傳輸
tls --> encrypt : 資料保護
log --> threat : 異常分析
threat --> audit : 報告生成
@enduml
此圖示展示了從開始登入到進行開發或管理工作的流程。透過這個流程圖,可以更清楚地瞭解存取主機系統的基本步驟。
ISPF 基本操作與資料集介紹
ISPF(Interactive System Productivity Facility)是大型主機上常用的互動式操作環境,提供多種功能幫助開發者與管理者進行工作。瞭解 ISPF 的基本操作與資料集管理,是使用大型主機的重要基礎。
ISPF 基本操作
在 ISPF 中,使用者可以透過滑鼠、方向鍵或 Tab 鍵在畫面上的不同輸入欄位之間移動。若要切換到不同的面板,可以在 Option ===> 提示符號後輸入對應的選單編號。若需要傳回前一個面板,按 End 鍵即可。
ISPF 的畫面可以根據使用者的需求進行客製化,因此本文中的範例畫面可能與讀者在系統上看到的畫面不完全相同。不過,大多數大型主機開發環境都會保留許多相同的功能。
自訂 ISPF 環境
例如,若要進入 Settings 面板,可以輸入 0 並按下 Enter 鍵。這將帶您到一個可以自訂 ISPF 環境的畫面,如變更命令提示符的位置,或是為彈出視窗提供更詳細的描述。
設定 ISPF 環境的步驟
- 在主選單中輸入
0進入 Settings 面板。 - 根據需求調整相關設定,例如命令提示符的位置。
- 按下 Enter 鍵儲存變更。
PF 鍵功能介紹
ISPF 提供了一組可自訂的程式功能鍵(PF 鍵),這些鍵可以簡化操作流程。以下是一些常見的 PF 鍵及其功能:
| PF 鍵 | 功能描述 |
|---|---|
| F1 | 顯示幫助資訊 |
| F2 | 分割螢幕 |
| F3 | 離開或傳回上一層 |
| F7 | 向上翻頁 |
| F8 | 向下翻頁 |
| F10 | 向右導航資料 |
| F11 | 向左導航資料 |
| PA1 或 Program Action 鍵(Alt-Insert 或 Esc) | 停止目前的處理或任務 |
使用 PF 鍵提高效率
瞭解並善用這些 PF 鍵,可以大幅提高在 ISPF 中的操作效率。例如,使用 F7 和 F8 可以快速在長列表中導航,而 F3 則可以方便地傳回上一層選單。
資料集(Datasets)基礎
在大型主機中,資料是以記錄(records)的形式儲存,而不是像 PC 上那樣以連續的位元組流表示。資料集是大型主機上用於儲存資料的基本單位,需要在建立時指定多種引數,如卷標序號(Volume serial)、裝置型別(Device type)、組織方式(Organization)、記錄格式(Record format)等。
資料集的主要引數
- 卷標序號(Volume serial):指定儲存資料集的 DASD(直接存取儲存裝置)名稱,最多六個字元。
- 裝置型別(Device type):指定使用的磁碟裝置型別。
- 組織方式(Organization):定義資料的處理方式,如順序(Sequential)、隨機(Random)、VSAM 等。
- 記錄格式(Record format):記錄可以是固定長度或變長的。
- 記錄長度(Record length):每個記錄的字元數。
- 空間(Space):為資料集保留的儲存空間,以磁碟上的磁軌或柱面等單位表示。
主要資料集型別介紹
大型主機上有多種資料集型別,包括順序檔案(Sequential file)、分割資料集(Partitioned dataset, PDS)、虛擬存取法(Virtual Storage Access Method, VSAM)等。
順序檔案(Sequential File)
順序檔案是最簡單的資料集型別,記錄按照順序儲存在磁碟上。新的記錄會附加在檔案末尾。這種資料集通常使用 JCL(Job Control Language)定義。
分割資料集(Partitioned Dataset, PDS)
PDS 類別似於 PC 上的資料夾概念,可以包含多個成員,每個成員都有一個位址,可以直接存取。PDS 的成員名稱按字母順序排列,並且可以使用 JCL 或 ISPF 建立。
PDS 的優缺點
優點:
- 可以將相關檔案組織在一起,方便管理。
- 可以在單一磁軌上儲存多個成員,提高儲存效率。
缺點:
- 當 PDS 被替換時,指向檔案的指標會被刪除,導致空間無法有效重複使用,需要定期清理。
- 目錄大小固定,若需要更多空間,需建立新的 PDS。
- 當 PDS 變大時,可能會導致磁碟活動增加,影響處理速度。
虛擬存取法(VSAM)
VSAM 是 IBM 在 1970 年代開發的一種結合資料集與存取方法的技術,提供了強大的檔案處理能力。VSAM 特別適用於 COBOL 和 CICS 開發,能夠簡化檔案處理流程。
VSAM 的優勢
- 提供高效能的檔案存取能力。
- 支援複雜的資料結構和存取需求。
- 經過多年的發展和最佳化,已成為大型主機環境中重要的資料存取技術。
程式碼範例與解析
以下是一個簡單的 JCL 範例,用於建立一個順序資料集:
//JOBNAME JOB (9999),'CREATE DATASET',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)
//STEP01 EXEC PGM=IEFBR14
//DD01 DD DSN=YOUR.DATASET.NAME,
// DISP=(NEW,CATLG),
// UNIT=SYSALLDA,
// SPACE=(TRK,(1,1)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
內容解密:
//JOBNAME JOB:定義了一個 JCL 作業,JOBNAME是作業名稱,後面的引數指定了作業的屬性,如優先順序、訊息級別等。//STEP01 EXEC PGM=IEFBR14:定義了一個作業步驟,執行程式IEFBR14,這是一個用於分配資料集的工具程式。//DD01 DD DSN=YOUR.DATASET.NAME:定義了一個資料定義(DD)名稱為DD01,並指定了要建立的資料集名稱YOUR.DATASET.NAME。DISP=(NEW,CATLG):指定資料集的處理方式為新建並編目。UNIT=SYSALLDA:指定資料集儲存的裝置型別。SPACE=(TRK,(1,1)):指定為資料集分配的空間大小,以磁軌為單位,初始分配 1 個磁軌,最多可擴充套件到 1 個磁軌。DCB=(RECFM=FB,LRECL=80,BLKSIZE=800):定義了資料控制塊(DCB)的引數,包括記錄格式(固定區塊)、記錄長度(80 字元)和區塊大小(800 字元)。
主機資料集管理與ISPF操作
在大型主機系統中,資料的管理至關重要。z/OS作業系統利用VSAM(虛擬存取方法)系統進行高效的資料儲存與檢索。本文將探討VSAM資料集的特性、分類別以及如何使用ISPF(互動式系統生產力工具)進行資料集的管理。
VSAM資料集概述
VSAM是一種高效能的資料存取方法,內建密碼保護功能,提供高安全性。VSAM資料集支援順序或隨機讀取記錄,共有四種型別:
- 鍵順序資料集(KSDS):最常用的VSAM資料集型別,提供隨機存取和變長記錄,並按鍵欄位排序。
- 進入順序資料集(ESDS):類別似於順序檔案組織,記錄由實體位址識別,不支援刪除,可包含重複記錄。
- 相對記錄資料集(RRDS):與ESDS相似,但使用相對記錄編號(RRN)進行存取,記錄長度固定,支援刪除。
- 線性資料集(LDS):根據位元組流的資料集結構,類別似於作業系統檔案,但較少用於應用程式開發。
VSAM的優缺點
VSAM具有高效率和安全性,但也存在一些限制:
- 僅適用於DASD(直接存取儲存裝置),不支援磁帶機。
- 需要較高的儲存需求,因為其功能需要更多的系統開銷。
- 主要用於大型主機開發,不適用於模組、JCL和原始程式等。
- VSAM資料集是專有的,無法被其他存取方法讀取。
目錄管理
z/OS使用目錄系統和VTOC(磁碟區內容表)來追蹤資料集的位置。VSAM檔案會自動被編目,使得在JCL中使用更加方便。
ISPF與資料集管理
ISPF提供了一系列工具來管理和操作資料集。其中,選項3.4可用於列出系統中的資料集,並進行相關操作。
資料集命名規則
資料集的命名需要遵循特定的規則:
- 名稱必須唯一。
- 名稱由多個部分組成,以句點分隔。
- 第一部分稱為高階限定詞(HLQ),通常與使用者名稱或安全系統相關。
- 名稱的第一個字元必須是大寫字母或特殊字元(#、@、$),後續字元可以是字母、數字、特殊字元或連字號。
常見的資料集命名慣例包括:
- 原始碼使用語言名稱,如COBOL、PL/I、C、JAVA等。
- 可執行檔使用LOAD、LOADLIB或LINKLIB等名稱。
- JCL檔案通常包含JCL、CNTL或JOB等字樣。
使用ISPF建立資料集
- 在主畫面中選擇3(Utilities)。
- 選擇2(Data Set)以開始分配資料集。
- 在Data Set Utility畫面中指定資料集的名稱和其他屬性。