測試 Oracle On NetApp (III)

然後我們到 O: 去把安裝資料庫的路徑改名稱 Oratest -> Oratest1 破壞原有的設定, 再把 U:Oratest (由 SnapShot 取出備份) 複製到 O:oratest 去. 這樣做的目的可以把剛剛做的 snapshot 的資料回覆回來, 並且確認資料庫是可以正常的開啟.

開啟時有時候會產生錯誤, 只要執行 Recover Database; 然後把資料庫的開啟狀況 alter database open; 開啟資料庫至可以存取的狀態. 檢查 snapshot 之後建立的 table 存不存在, select * from tabletest; 系統應該是會回覆不存在這個 table.

建議再資料複製完畢後, 立即把 U: (由 SnapShot 製作出來的 Disk 移除連結 (disconnect), 以防止該 snapshot 被佔用掉導致下次的 snapshot 不成功.
Test NetApp Picture

接下來再測試一下輸入剛剛的 Create table tabletest as (select * from all_tables); 建立一個測試的 table, 重複上列測試動作, 確認 snapshot 運作正常且 Oracle 可以正確的回覆, 資料不會丟失.

以上驗證看起來 SnapShot 是可以利用 Script 的設定達到備份的目的, 且只要安裝資料庫的主機是把必要的檔案如 Password file/UDump/DDump 等等的位置弄對, 可以很容易的再遠端把資料回覆.

接下來就是重頭戲, 測試 SnapMirror (複製異動資料到遠端的 NAS 上面去).
第一步就是在目的端設定一個 LUN 大小最少要跟 Source 端一樣大小, 設定部分請參考前述文章.

執行 SnapMirror 來設定兩端備援機制, 記得要連線到目的端主機做設定喔.
Test NetApp Picture

首先先指定 Destination 的 Vol & Qtree (path), 指定 Source 端的 Filer (就是來源端主機), Location 其 LUN 的路徑, Maximum Transfer Rate 可以指定最大可用頻寬, 來限制 NetApp 最大可使用同步的頻寬, 並設定每小時同步一次, 其實這邊在實務上應該設定不自動同步, 因為我們會利用 Script 來驅動 Oracle 做Begin / End Backup 的動作, 由 NetApp 主動去製作同步也沒有什麼意義, 因為有部分的資料還是存放在 Server 的 Memory 內, 沒有 Flush 出來到檔案還是會造成資料的部份 Lost.
Test NetApp Picture

最後一步就是在原有的 Script 加上強制同步的功能 (先在 LUN 上面做 SnapShot, 之後立即把資料同步到另外一台 NetApp主機上), 在 Backup.bat 加入下面這一行:

rsh %rm_ip% -l root:rootpassword snapmirror update -S %na_ip%:vol_Oracle %rm_name%:vol_oracle_DR

這樣在執行 Oracle 的線上備份程序後就立即的觸發 SnapMirror 的動作, 把剛剛備份下來熱騰騰的資料傳到另一台主機.

如果要由遠端主機做資料的回覆, 同樣的需要利用 iSCSI 連接到遠端的 LUN, 接下來同樣的可以選擇 Mount 最後備份的資料或是其中的一份 SnapShot 成為另外一個磁碟機, 把檔案複製到原始的 Oracle Data 路徑, 然後重啟 Oracle Database, 做必要的回覆就可以把資料救回來.

備註: 如果 Datafile 無法救到最新的這一份, 而 Archive Log 還保有比 Datafile 更新的資料, 可以由以下的兩個指令來 Apply archive log file 讓資料回覆到系統資料保存最後的一筆資料.

recover database using backup controlfile until cancel;

alter database open resetlogs;

測試 Oracle On NetApp (II)

完成後顯示下列的總表
Test NetApp Picture

系統立即多出來個 50G 空間.
Test NetApp Picture

接下來應該在使用 Oracle dbca (Database Create assist) 建立一個測試的資料庫, 可以開立一個 DOS box 鍵入 dbca, 依照畫面的輸入,把資料庫建立起來, 安裝完成後進入資料庫確認執行正常喔.

註: 我原先已經在 O: 建立好資料庫了, 所以我把 O: 及 R: 對調並且把建立好的資料庫再複製回到 O: 上面, 所以現在開始資料庫是在放 O:, 且 O: 是存在於剛剛建立好的 iSCSI 上面.

由於是透過 LUN 來做的 iSCSI, NetApp無法提供定期性做 SnapShot (有的話也只是對著那個很大的檔案), 且自動 SnapShot 時也無法保證 Oracle DB 會把所有暫存在記憶體內的資料 Flush 到硬碟內, 所以必須透過幾個 Script file 去驅動 Oracle DB 執行 Log Switch 及 Begin Backup 指令, 把該寫的資料寫出到硬碟, 這樣做 SnapShot 才有意義.

接下來測試由廠商提供的 Scripts (加上自己環境的加工), 在 C: 建立一個 Script 的路徑, 把以下的內容 Key 進去.
Backup.bat
Set ORACLE_SID=ORATEST
SET NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950
set na_ip=10.5.1.111
set rm_ip=10.5.1.111
set rm_name=FAS2020

rsh %na_ip% -l root:root123 snap delete -V vol1 old3
rsh %na_ip% -l root:root123 snap rename -V vol1 old2 old3
rsh %na_ip% -l root:root123 snap rename -V vol1 old1 old2
rsh %na_ip% -l root:root123 snap rename -V vol1 new old1
sqlplus /nolog @”C:/scripts/dobegin.sql”
rsh %na_ip% -l root:root123 snap create -V vol1 new
sqlplus /nolog @”C:/scripts/doend.sql”

dobegin.sql
connect sys/orc1@oratest as sysdba
SET FEEDBACK off
SET PAGESIZE 0
SPOOL C:/scripts/begin.sql
SELECT
‘ALTER TABLESPACE ‘ || tablespace_name || ‘ BEGIN BACKUP;’
FROM
dba_tablespaces where contents != ‘TEMPORARY’;
SPOOL off
alter system archive log current;
@C:/scripts/begin.sql
select status from vinstance;
EXIT

DOEND.SQL
connect sys/orc1@oratest as sysdba
SET FEEDBACK off
SET PAGESIZE 0
SPOOL C:/scripts/end.sql
SELECT
‘ALTER TABLESPACE ‘ || tablespace_name || ‘ END BACKUP;’
FROM
dba_tablespaces where contents != ‘TEMPORARY’;
SPOOL off
@C:/scripts/end.sql
EXIT

執行完後就可以在 SnapDrive 上面看到一個新的 SnapShot 叫 New, 每執行一次, 就會把 New 更名成 Old1, Old2, Old3 等等, 看看想要保留最後的幾份, 修改 Backup.bat 就可以了
Test NetApp Picture

要測試 SnapShot 是否完成, 新增幾筆資料到資料庫內, 我利用 Create table test as (select * from all_tables); 新增一個table, 確認資料該 Table 實際有資料後, 關閉資料庫, 把 New 這個 SnapShot 再 Connect 成另外一個 Disk.
選擇 SnapDrive 點選Disk, 移到右方選 Connect Disk
Test NetApp Picture

然後 Wizard 又跑出來, 選擇好 FAS2020主機, 選擇 Vol1 -> .snapshot -> New -> oratest, 可千萬不要選錯了喔..
Test NetApp Picture

注意要看到是 Disk snapshot 才是對的喔.. 點選 Next
Test NetApp Picture

給她一個磁碟代號, Next, 接下的動作跟建立一個新的 Disk 一樣, 一直 Next 到底就好.
Test NetApp Picture

最後還是出現一個彙總的資訊畫面, Next 就完成了.
Test NetApp Picture

電腦就多產生了一個 U: 出來, 其大小就是跟 O: 一樣的, 只差在資料.
Test NetApp Picture

測試 Oracle On NetApp (I)

由於公司是使用 Oracle 10g for Windows 當作主要的資料庫, 但 Oracle 10g 又不允許把資料庫掛在網路硬碟上面, 另一種解決方式就是利用 iSCSI 把網路分享的空間變成一個實體的硬碟.

先來驗證一下 LUN-> Manage 看看是否建立成功.
Test NetApp Picture

設定好的 LUN 已經安靜的躺在那邊.
Test NetApp Picture

接下來到 Windows Server 主機上作業, 首先要先安裝好 MS iSCSI initiator ,安裝好 Initiator, 系統會產生一組 Initiator Node Name (打開 MS iSCSI Initiator 的第一個畫面就有),
把這個 Node Name 加入到 NetApp 可以對應的 iSCSI 當中.
Test NetApp Picture

接著安裝 SnapDrive for Windows, 該軟體主要是可以直接把 iSCSI 綁到系統內, 並且可以手動來做 SnapShot. 安裝前必須要先安裝 .Net Framework 3.0 以及一些 Hotfixes, 但是需要 Download 這些 Hotfixes 需要另一番功夫, 進入到 Download 的畫面後, 微軟會要求你輸入你的 Email 位置, 然後 M$ 會把 Download 的 Link 以及 Zip 的密碼用 email 寄給你, 這樣才有辦法 Download 並解開.. 真是夠了..

安裝好之後會利用 M$ 的MMC (Microsoft Management Console) 的方式帶出 SnapDrive 的操作介面,
Test NetApp Picture

先 highlight Storage System Management , 選擇右鍵後點選 Add Storage System, 把 NetApp 主機的名稱 / IP 加到系統內.
Test NetApp Picture

接下來選擇主機->Disks, 在畫面右方選 Create Disk, 開始來連結 iSCSI Disk.
Test NetApp Picture

接著系統會彈出一個 Wizard 出來, 選擇好 NetApp 的主機, 選擇還有空間的 Volume, 輸入 LUN Name, 按 Next.
Test NetApp Picture

選擇獨佔(dedicated)模式, 之後下一步.
Test NetApp Picture

選擇需要連接上的 Drive, 及空間大小, 選擇 Next.
Test NetApp Picture

勾選 Initiator 後按 Next
Test NetApp Picture

預設值不變, 直接 Next
Test NetApp Picture

最後一步選擇 Finish 開始製作硬碟空間
Test NetApp Picture

建立 Partition, 並且幫你Format 到好喔.
Test NetApp Picture

測試 NetApp FS2050 (III)

選擇 Volume -> Add 來新增一個新的分割
Test NetApp

Volume 可以選擇三種, Flexible, Traditional, Cache 等, 一般來說只要選擇 Flexible 比較合適, 順道列出針對每個 Volume type Net app 自己的解釋
Test NetApp

Flexible volumes allow you to manage the logical layer of the file system independently of the physical layer of storage. Multiple flexible volumes can exist within a single separate, physically defined aggregate structure of disks and RAID groups. Flexible volumes contained by the same aggregate share the physical storage resources, RAID configuration, and plex structure of that aggregate.

Traditional volumes behave identically to volumes in Data ONTAP releases prior to version 7.0. They combine the physical layer of storage (the disk and RAID properties) with the logical layer of the file system (the volumes and any other containers that are used to store files and directories).

Cache volumes allow you to keep copies of primarily read-only files on multiple filers to reduce overhead caused by bandwidth or distance limitations. A flexible or traditional volume is needed as the primary copy on a remote host. Cache volumes can be created that reference the primary copy, or remote volume, and store their own copy locally to reduce access latency.

設定一些 Volume 的參數, Language 會預設帶出 Root Volume 的值, Volume 建立後隨意的可能更換會導致某些檔案無法讀取.
Test NetApp

接下來選擇剛剛建立好的 Aggregate
Test NetApp

選擇好預定給的大小, SnapShot 可以選擇是內含還是外加(好像所得稅), 預設值是給 20%
Test NetApp

最後一個步驟就是給顯示出彙總資料, 選擇 Commit 就建立一個新的 volume
Test NetApp

到此為止還沒有辦法在 Windows 直接分享到這個服務, 所以必須要在 CIFS -. Configure -> Setup Wizard 把分享開啟. Ps. Windows 的分享是走 CIFS 的通訊協定
Test NetApp

第一個畫面.
Test NetApp

選擇要分享的名稱與敘述, Windows Server 就填寫 Domain controller 吧, 方便向下相容.
Test NetApp

接下來是使用者的驗證方式, 測試環境內有 AD Domain, 就直接選擇了, 不過只有 windows 2000 可選, 不知道在 Windows 2003 / 2008 的環境是否可以相容.
Test NetApp

Domain Name 就填寫環境的 Domain Name, Password 填寫的是 domain administrator. 應該有 Domain admins 權限的人應該也可以
Test NetApp

分享格式選 NTFS, 因為可以套用 AD 的權限設定
Test NetApp

一樣的, 設定完成後還是會有的彙總畫面出來, 選擇 Commit 後就建立了一個新的分享.
Test NetApp

接下來要把這個分享 Share 出來. 選擇 CIFS -> Share -> 輸入以下的參數, 就大功告成, Mount Point 的觀念其實跟 Unix 的觀念是相同的, 據說 NetApp 的核心也是由 Linux 改版來的.
Test NetApp

在本機環境連線到 NetApp 主機就可以直接看到這個分享了.
Test NetApp

測試 NetApp FS2050 (II)

回到主選單來驗證一下
Test NetApp

就多了一筆 Aggregate 的紀錄, 因為剛剛開始建立, 所以看到的容量等資訊都是空白.
Test NetApp

等了一陣子後就會顯示出來剛剛新增加的Aggregate 變成已經準備好可以開始分割了
Test NetApp

接下來選擇 Volume -> Manage 先觀看一下已經存在的 Volumes, Volume 其實就是相對於 Windows 的分割區, 只是在 NetApp 上, Volumes 除了可以當成 Windows 的分享外, 還可以切割成切割 NFS 的分享以及iSCSI 的 Target 來分享給其他的Client端.
Test NetApp

目前存在的 Volume 列表, 還會顯示其使用的情況.
Test NetApp

測試 NetApp FS2050 (I)

這次測試異地備援的專案, 跟廠商商借了一台 NetApp FAS2050的機器, 裡面插滿了 20 顆 300G 的SAS硬碟, 全容量將會有 5.4TB左右, 透過 NetApp 特殊的機制 RAID-DP , 去掉兩台 Parity HDD 所得到的數字.

經過廠商設定與加入AD之後, 絕大部分的設定可以在網頁介面上控制, 如果覺得不夠, 也可以利用 Telnet 進入到系統內來做設定, 指令下的方式很類似 Unix 指令, 即時監控也可以利用這種方式來看.

首先進入網頁後, 輸入 ID/Password, 就可以看到以下的首頁, 幾乎所有的控制功能都在 FilerView 來設定, 底下更可以來看系統是否運作正常.
Test NetApp

進入後會另開一個視窗, 把系統的重要資訊列在右側的螢幕上, 左側的則是樹狀的架構選單
Test NetApp

Filer->Report 可以更詳細的列出目前系統的狀況,
Test NetApp

Filer -> Shutdown and Reboot 可以直接設定關機或者是重新開機, 當然已 NAS 來說, 常常執行這個畫面也覺得是怪怪的
Test NetApp

機器一開始運作要先製作一個 Aggregate (集合體?), Aggregate 主要的是要彙整 Disk / RAID group 變成一個大的資源 (Resource), 之後所有要分享出去的空間, 都是由 Aggregate 來切割出去. 以下是 NetApp 自己的解釋: Aggregates are containers that capture all the physical aspects of storage: disks, RAID groups, and plexes.

Aggregate -> Add 新增一個出來,
Test NetApp

選擇 Aggregate 名稱, 或是由系統自動帶入, 選擇 Double Parity 之後會啟動 RAID-DP功能, 同一個 Raid Group 可以有兩顆硬碟遺失, 跟 Raid 6 原理很像但是 Parity 的方式是用交叉計算得來 (技術人員告知的)
Test NetApp

選擇要使用幾個 HDD 進來, 但是由於會主動的扣除掉兩個做Parity 的硬碟, 所以是選擇越多硬碟越划算喔.
Test NetApp

硬碟可以由系統指定, 也可以人員指定, 不過硬碟的順序不等於機器上排放的順序, 所以自己指定看起來沒有太大意義.
Test NetApp

由於只有接 SAS 的硬碟, 所以沒得選擇別的型態.
Test NetApp

自己選擇要指定的硬碟, 其中有一個選項是 Allow Disks of Different RPM, 看了說明是可以 Override 強制性的解除這項功能, 讓高速的硬碟來配合較低轉速的工作效能.
Test NetApp

最後一個步驟系統會把所有的設定做成一個彙總的清單, 顯示在螢幕上讓你確認, 按下 Commit 後就建立這個 Aggregate.
Test NetApp