



之前因為Retorspect要復原資料連續失敗好多次的關係,被嫌到一個不行。但是手邊又一直找不到適合的備份軟體。(其實是找不到不用錢又好用的..不然BESR倒還不錯用)。所以一直都在找這方面的方案,像是Bacula 、BackupPC等等。但是這些軟體都有相的毛病,沒辦法去處理windows 底下 open file的問題。我總不能要求USER說:「ㄟㄟ,現在要跑備份,把OUTLOOK關掉」 或者是在backup script 裡面強制關閉outlook ,那會造成USER的困擾,所以這問題就一直呈現無解的狀態。
前面幾篇POST都在測試ZFS、ISCSI、RAID等等儲存空間的相關方案,現在大致上在硬體配置上有了初步的構想。同時也測試過了用windows的robocopy and vshadow 來達到備份open file成功。加上zfs的snapshot ,接下來就只要去編輯一個適用的批次檔來備份固定的幾個目錄(my favorites , outlook , desktop,my documents ..etc) 因為基本上當USER電腦故障的時候,也不用想什麼DR了,以現在電腦的配備,直接重灌系統比較快,所以系統就不用備份了。主要針對USER的資料就可以,搭配zfs snapshot ,可以作到無限多的快照!(當然,硬碟空間要夠就是了) 。不過這要稍微考慮一個問題,如果要以部門為單位來切ZFS ,那可能會有非常多的ZFS要管理,雖然擴充硬碟很快,但是可能會造成管理上的困擾,要特別留意。
PC
以下照片引用網路上的來源)
硬體配置:
四大六小 or 四大七小的 CASE (CoolerMaster RC334) + 二轉三硬碟架 x 2
之所以不用三轉五的是因為成本考量 + 三大六小的CASE沒個喜歡的 XD ,所以才用兩組二轉三
EverCool 這個產品跟RC系列的mid tower case 搭配起來很順眼,外觀很類似,不會有突兀的感覺。

CPU 就沒有什麼特殊的限制,愛用Intel or AMD 都可以,我是由版子去挑CPU,版子要有GIGA LAN(很基本,DUAL PORT最好)、記憶體1G就夠了(反正只跑zfs and iscsi)、顯示卡、音效卡ONBOARD最好,重點是 SATA port 要多!
我是在拍賣上找到這塊技嘉的GA-965P-DS4 總共有八個SATA Port XD

再來就是硬碟,因為這台機器目前是偷渡(沒有按照公司流程申請),所以不能明目張膽的搞太多硬碟進來。我只用了之前手邊庫存的兩顆500G + 一顆80G SATA作為儲存空間,而主系統則是用四顆SCSI 18G 作RAID 5 (當然,這樣很浪費空間,我只是不想把這組RAID放著生灰塵才拿來用,如果是真的要作一台專門的STORAGE出來,我可能就會拿兩顆80G的來作mirror就好)
PSU:依照個人偏好選吧,我採用HEC 的350W Power 安靜、穩定又不貴!,加上 一些4pin 轉sata 的分接頭(因為總共要接7個device,其實原本的接頭是夠啦,分接頭後來好像也都沒用到)

記憶體:沒差,就挑終保的就好了,我是用kingbox 或Kingston
目前支援ZFS的作業系統有 Opensolaris 10.x以後、Freebsd 7.2以後、Fedora Core 11以後(用fuse-zfs來作,效能非常糟糕),可以參考之前的這篇
因為ZFS在Fedora Core 上面目前是透過Fuse ZFS來作,效能不彰,所以這台STORAGE也就不考慮用Fedora Core了(其實10.203 也是用zfs 來備份NAS4100上將近600G的資料,除了第一次啟始備份久一點以外,其實倒也還好,因為畢竟是透過網路備份,就算是GIGALAN全速跑,了不起5x 6x MB就很好了,這樣的數據,應該是還撐不飽硬碟的頻寬,雖然上一篇測試的速度大概在3X MB左右,但是我GIGA LAN的速度也不過就是如此,所以沒有特別去把原來在linux上的zfs改過來,不過既然這台是新的,那已知有這樣的問題,能閃就閃吧,用Freebsd 會是比較好的選擇,至於Opensolaris ,是因為我不會用,所以完全不考慮 XD )
BSD 8.0的安裝非常簡單,尤其如果是透過隨身碟來進行的話。安裝過程就省略吧。
進入系統後,習慣安裝的軟體有:zhcon(中文console)、screen 、joe or vim、lynx 、mutt、iscsitarget
iscsi target in BSD 可以參考
http://blog.ntut.idv.tw/2009/03/fbsd-freebsd-iscsi-setup.html
http://jnlin.org/2008/05/14/291/
還有之前自己寫的
ZFS 的設定就不多說了,反正有夠簡單的。
再來就是如果有domain ,設定可以依照DOMAIN USER認證,或者是在上透過SAMBA分享一個可讀寫的目錄出來,一樣,這些不多說,domain 認證可以參考
接下來就是重頭戲了
在硬體及作業系統設定完成之後,接下來要開始測試要怎麼把遠端的機器備份到這個storage來。
這一段大部分是在client 端的設定,SERVER這邊沒什麼要動的(這是以目前的架構來說,如果要搭配rsync ,就要另外設定rsyncd了,採用rsync的優點是可以作incremental backup ,不過就是要再研究就是了,因為我不認為像是我主要備份目標的outlook.pst 碰到這種incremental backup 能夠只備份異動的部分)
主要參考
先想辦法找到 dosdev.exe , vshadow.exe , robocopy (都在微軟網站可以找到,一個是在vss SDK,一個是2003 resource tool ,一個忘了)
湊齊這三個執行檔之後,把這三個檔案放在同個目錄下(eg. d:\backup_tool )接下來依照網頁上的說明編輯一個vss-exec.cmd
內容如下
call vss-setvar.cmd
@ECHO OFF
dosdev B: %SHADOW_DEVICE_1%
robocopy B:\ \\server\share\ /mir
dosdev -r -d B:
這邊有幾個地方要注意
第一就是安裝 VSS SDK時候,如果直接從安裝路徑把vshadow.exe 複製出來的,一定會出錯。
請參閱圖片說明


確認vshadow的版本及檔案大小,感謝Buganini指正
確認了 vshadow.exe 檔案大小之後,就可以執行
vshadow.exe -script=vss-setvar.cmd -exec=vss-exec.cmd c:
要注意最後的 C: ,依照我粗略的瞭解,似乎是volume shadow 是以 ” volume ” 為單位,所以一次就是以C槽 或 D槽來作volume 備份。那依照我想要的備份條件,就是 C or D 都要,先用D來作例子好了。
call vss-setvar.cmd
@ECHO OFF
dosdev B: %SHADOW_DEVICE_1%
robocopy b:\outlook\ \\192.168.10.203\bernice\outlook\ /e
dosdev -r -d B:
第一行的 vss-setvar.cmd 是 vshadow 會自己產生
dosdev b: 這行 是指定把shadow volume mount 到 B (只是有點疑問,為何是B: ,其他磁碟應該也可以吧?)
MOUNT好之後,接下來的robocopy 就是把shadow volume(B:)中的outlook 目錄 複製到 10.203 所分享出來的bernice資料夾中的outlook目錄去 ,robocopy的用法可以參考她的參數說明。 在這邊除了使用robocopy之外,xcopy 、fastcopy等等當然也都是可以用的。底下圖片說明了在outlook還開啟的狀態下,照樣複製 outlook.pst 到網路上去!

OK ,目前測試到這邊大概差不多了。
接下來的目標就是看看如果改用rsync 來作備份,速度會不會比較快了!?
再來就是那個cmd 裡面要修改一下,能夠依照系統變數自動去備份不同的目錄。
看是要寫進login script ,還是寫個批次檔把命令加入windows排程中,然後發信件給USER,讓USER自己去執行。
以下是可能會用到的XP系統變數
要備份的目錄包括 D:\outlook , 我的文件,我的最愛,或許告知USER備份規則之後,統一在D槽建立一個username的目錄,然後把USER個人的資料放在這個目錄中。
不備份的檔案類型、目錄有 temp , pagefile.sys , *.mp*(MP3,MP4,MPG等影像、音樂檔) , *.avi,*.rm*(rm,rmvb),*.ra
COMPUTERNAME=TSNB27201
HOMEPATH=\Documents and Settings\chchang
SystemRoot=C:\WINDOWS
TEMP=d:\temp
TMP=d:\temp
USERNAME=chchang
windir=C:\WINDOWS
大致這樣,想到什麼或者有最新測試再來補充。






More Options ...
Categories
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 
請問一下現在cwrsync對unicode檔名跟long path的支援如何?
BTW, 今天才發現的情形,不是很確定
用robocopy /e /purge \\anotherCompuer\D %somewhereLocal%
的時候
如果不巧anotherComputer沒開機
local就被清空了>”<
樓上還少一個/XO
不過看起來您是用client push,不會有這種問題:D
我剛剛在xp professional試,要用release-xp
其他人遇到的其他狀況:
http://thorny-issues.blogspot.com/2008/11/volume-shadow-copy-service-vssebadstate.html
今日實測結果:用cwrsync就對了
server/client都用cwrsync 4.0.3
unicode/long path都沒遇到問題
concurrencency高的時候比robocopy穩又快
ftp://security-hole.info/shadowSync.7z 本日成果
感謝你囉 尤其是那個圖片
之前拿錯的vshadow.exe跑半天跑不出來以為XP不支援
哪裡,您客氣了。我也是在碰到相同的問題之後,去網路上看到類似的解決方案(那個網站是提到在vista底下的相同狀況)才碰巧解決的。
另外,的確是要用release-XP沒錯,應該是我在抓圖的時候點錯目錄了,明天上班再修正回來!
接下來我打算拿
http://www.microsoft.com/msj/0999/journal/journal.aspx
生出changelist餵給rsync吃–include-from
這樣就會快多了
hmmm
changelist ? 第一個想法是用 find 去作,但是 windows 的find 和linux 底下的find 似乎完全不同的用途,所以沒辦法用mtime,ctime,atime去作篩選。3rd party的FREEWARE應該是有,只是要去找,不過那可能不在我的需求以內了。
NTFS本身有journal的功能,檔案的變更有紀錄可查,就不用全部找一遍了。