測試 Dell EqualLogic iSCSI Storage (IV)

設定 Replication

要設定 Replication 機制 (就是兩台 Storage 要同步), 必須先設定好兩台機器的 Partnership 關係, 廠商說明這個機制也可以多對多, 但手邊只借到兩台無法在自己的環境下模擬.

在選單上面選擇 Replication Partners -> Configure Partner
Dell EqualLogic

僅需要登打 Group Name (請自取), 及 Group IP address (另外一台 Storage 的 IP)
Dell EqualLogic
閱讀全文 測試 Dell EqualLogic iSCSI Storage (IV)

測試 Dell EqualLogic iSCSI Storage (III)

傳輸測試

接下來用 Ubuntu 8.0.4 主機安裝 VMware Server 2.0 上建立的 Windows 2003 Server 把 iSCSI Volume Mount 進來測試檔案傳輸速度, 圖型左邊是有我的電腦傳送到 Server 上後存放在 Dell EqualLogic Storage 上, 右邊是直接讀取 Storage 上的資料立即回寫回去, 兩邊看起來速度差不多, 在期間用人工作了一次 SnapShot, 感覺不出來傳輸效能有任何變化.
Dell EqualLogic

接下來測試把一個大的檔案由 Storage 複製到本機的硬碟上, 在由本機硬碟回寫回去, 由於該主機跟 Storage 只透過一個 1G 的 Switch Hub (Dell 提供測試的), 所以中間會影響的參數應該會降低

把約 1.7G 的一個大的安裝檔案由 Storage 複製到 Server 上, 看起來真的很慘,
Dell EqualLogic
閱讀全文 測試 Dell EqualLogic iSCSI Storage (III)

測試 Dell EqualLogic iSCSI Storage (II)

建立 iSCSI

唯一可以使用 Dell EqualLogic 的方式就是透過網路的 iSCSI 通訊協定, 把分享出來的 Volume 透過 iSCSI Initiator 掛載到本機, 模擬成本機硬碟然後分享出來, 不像是 NetApp 可透過本機的 CIFS 通訊協定把檔案分享出來.

用 iSCSI Initiator 掛載硬碟在前次 NetApp 分享已經有說明過, 就不再重複說明, 以下是很快速的說明建立一個 iSCSI的步驟

選擇 Create Volume,
Dell EqualLogic

輸入 Volume 的名稱
Dell EqualLogic
閱讀全文 測試 Dell EqualLogic iSCSI Storage (II)

測試 Dell EqualLogic iSCSI Storage (I)

系統初始化

看了 Dell 的產品簡介, 發現他自己也有自己的 Storage 也可以做到同步, 唯一不同的是該產品只提供iSCSI 介面, 不像 NetApp 除了 iSCSI外, 也提供 CIFS / NFS 等通訊協定: 由以下的畫面選擇任何一台, 選下一步
Dell EqualLogic

第一步設定底下的參數, 由於 EqualLogic 可以把很多台 PS 系列的 Storage 和併成一個虛擬的主機來提供服務, 所以 Member Name 就是要區分每台 Storage 不同的名稱, IP 是指本機的第一個網路 Port 的 IP, 每台主機可以有 3 個接口同時可以做 Load Balance 及 Multi-path, 任何一個網路線路故障, 其他兩個可以立即接手作業.

由於是初始作業, 所以記得要選擇 Create New Group, 一個 Group 就是把一堆 Member 所代表出來的虛擬服務主機.
Dell EqualLogic
閱讀全文 測試 Dell EqualLogic iSCSI Storage (I)

FreeNas 測試 (V)

本地端同步USB外接硬碟

Rsync 除了可以作遠端同步外, 還可以同步本機的硬碟或者是路徑功能, 測試目標為設定原 10.1.99.32 上面的 Share, 同步到本機的 USB 隨身碟上.

首先把隨身碟先加入到硬碟空列表內, 讓 FreeNas 認得這個硬碟, 經過格式化後掛載至 Remote (過程參考前面的測試資料).
RSync and USB Test

至 Rsync 選擇本地端, 加入一個新的規格
RSync and USB Test

選擇好來源及目標位置 (可利用後面的按鈕選擇)
RSync and USB Test
閱讀全文 FreeNas 測試 (V)

FreeNas 測試 (IV)

Rsync 的設定

接下來測試 FreeNas 的同步功能, 當做是遠端備份自動同步到公司主要機房的機制, 首先要啟動 Rsync (Remote Sync)功能, 右上角打勾後”儲存並重新啟動”, 這樣讓 Rsync 的 Service 才能啟動, 兩台主機都要啟動喔.
RSync Test

現在要測試讓 10.1.99.32 的 Share2 的資料可以自動同步到 10.1.99.31 的 Share目錄下去, 接下來到 Source 端 (設定成 10.1.99.32) 設定”模組”,
RSync Test

閱讀全文 FreeNas 測試 (IV)

FreeNas 測試 (III)

今天利用前幾天設定好的 FreeNAS 機制, 再來作一些容錯性的測試, 目的是模擬 FreeNas 主機如果故障, 是否可以利用現有的環境再另一台主機立即回覆, 所以作了以下的嘗試

原始主機: Gigabyte 8S661FXMP-RZ (SIS晶片組)
目的主機: ASUS P5P800-VM (Intel晶片組)
網路卡都是使用 On-board 的網卡, 硬碟作軟體的 RAID 1

嘗試一:
把開機的 USB 及一個硬碟拔到另外一台主機上開機, 機器可以正常開機, Web介面正常, CIFS 設定也有抓到同時顯示有另外一顆沒有抓到. 以上看起來系統識可以正常運作, 但是由 WIndows 去讀取發現分享的資料夾打不開.

嘗試二:
再把 USB 拔回到原來的主機, 但是只接一顆硬碟開機(與嘗試一不同顆), 還是發現有以上的現象, 這點跟我先前的想法有點不同, 之後要來測試一下整個硬碟故障還原的測試.

嘗試三:
把原始主機上的 USB 及兩個 HDD 都拿到目的主機上安裝, 再 BIOS 設定好 HDD 開機順序 (由 USB 開機), 系統也是一次就開啟, 分享服務也是立即可用..

結論:
FreeNAS 的移植性很強, 以後遇到主機故障只要把 Storage 移植過去, 系統就可以直接 ON 起來服務, 以後要升級也是很容易, 但是 RAID 1 失去一顆會讓服務停止, 這樣有點 “掉漆” 的感覺.

FreeNas 測試 (I)

今天找了一台Celeron 2.8G 的主機來測試 FreeNas 這套軟體, 該軟體可以說是窮人的 NAS, 只要備好主機及硬碟後就可以把電腦變成 NAS 來使用, 最棒的是軟體的部份完全免費.

因為他本身有支援 CIFS 協定 (可以作AD 網域分享), 也有支援 RSync 遠端的檔案同步, 所以未來想要拿來作檔案備份的解決方案, 所以先開始來摸摸這套免費的產品.

首先到 FreeNas 網站上抓取最新的 Stable 版本, Nightly 的測試版只拿來測試就好, 千萬不要用在正式的環境下, 安裝起來倒是蠻容易的, 只是花了一點時間來嘗試把所有的開機資料放在 USB 隨身碟.

原來一開始把所有的東西一口氣接上去, 會發現怎麼都沒有辦法把資料安裝在 USB 內, 後來發覺他一開機會自動去找USB / Floppy Disk 把參數資料寫在裡面, 所以 USB 在使用中是不可以被整個蓋過去, 在這邊花了相當的時間 Try & Error, 最後出絕招, 把 HDD 拿掉, USB也拿掉, 直接用 CD-ROM 開機, 等到進入到選單畫面才把 USB 插上去.

接下來選擇 9) Install to a hard drive/memory drive/USB Pen, etc. -> 1) Install on HD, CF or USB key: Create 1 UFS partition, 來源選擇 CD-ROM 當做 Source, USB 當做 Destination (選項是 da0), 系統會提示你可用 USB 開機, 記得在 BIOS 要有支援 USB-HDD 開機的功能,設定好就可以由 USB 開機了.

重新開機後設定網路卡 IP, 選擇 2) Set LAN IP address, 完成後就可以尤其他電腦的網頁上面看到畫面開始的歡迎畫面. 整個的設定請參考官網上面的說明文件 (http://www.freenas.org/index.php?option=com_versions&Itemid=51).
Quick Test FreeNas

在設定 RAID 的時候花了一點時間, 原因是找來的 40G IED HDD 是有問題的, 設定成 RAID 0 時, 在 Mount 的階段會一直出現錯誤, 網路上找解法是前一次設定 RAID 的資料沒有被清除, 可以利用 dd 的指令來做清除, 後來想了一下用一般的開機 CD 進入到 DOS 重新劃分 DOS 磁區, 結果卡在檢查磁區內容, 判斷是硬碟故障, 所以換了一顆硬碟之後 (20G) 製作起來一切順利.

其建立 RAID 的流程
1. 先把 HD 註冊進來, 可以先不指定格式
2. 格式化硬碟, 格式選擇成 software-raid, 重複前兩個動作直到所有的硬碟都完成格式化
3. 選擇 SoftwareRaid 建立 RAID (支援 JBOD, 0, 1, 5 等幾種)
4. 把上述用的 HDD 重新再加入到這個RAID Group 進來, 產生一個RAID的邏輯硬碟
5. 把邏輯硬碟拿來格式化
6. 設定掛載點(Mount Point), 這樣系統就可以認識這個硬碟了

如果要在 Windows 環境下使用就必須要開啟 CIFS 服務, 在旁邊的 共享 把分享打開, 用網路芳鄰的方式就可以看到開放出來的分享接下來的小測試都是在這種環境下進行.
Quick Test FreeNas

測試 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;