04 Feb 2010 @ 2:28 PM 
 

[筆記] 利用robocopy , vshadow,dosdev 來達成備份windows open file backup的目標

 

之前因為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

GA-965P-DS4

再來就是硬碟,因為這台機器目前是偷渡(沒有按照公司流程申請),所以不能明目張膽的搞太多硬碟進來。我只用了之前手邊庫存的兩顆500G + 一顆80G SATA作為儲存空間,而主系統則是用四顆SCSI 18G 作RAID 5 (當然,這樣很浪費空間,我只是不想把這組RAID放著生灰塵才拿來用,如果是真的要作一台專門的STORAGE出來,我可能就會拿兩顆80G的來作mirror就好)

PSU:依照個人偏好選吧,我採用HEC 的350W Power 安靜、穩定又不貴!,加上 一些4pin 轉sata 的分接頭(因為總共要接7個device,其實原本的接頭是夠啦,分接頭後來好像也都沒用到)

HEC 350W PSU

記憶體:沒差,就挑終保的就好了,我是用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 能夠只備份異動的部分)

主要參考

Backing Up Open Files on Windows with Rsync (and BackupPC)

Workstation Open File Backup Using Robocopy And Vshadow

先想辦法找到 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

大致這樣,想到什麼或者有最新測試再來補充。

  • Share/Bookmark
Tags Categories: 工作筆記 Posted By: chchang
Last Edit: 08 Feb 2010 @ 08 33 AM

EmailPermalink
 

Responses to this post » (10 Total)

 
  1. Buganini says:

    請問一下現在cwrsync對unicode檔名跟long path的支援如何?

  2. Buganini says:

    BTW, 今天才發現的情形,不是很確定
    用robocopy /e /purge \\anotherCompuer\D %somewhereLocal%
    的時候

    如果不巧anotherComputer沒開機
    local就被清空了>”<

  3. Buganini says:

    樓上還少一個/XO
    不過看起來您是用client push,不會有這種問題:D

  4. Buganini says:

    我剛剛在xp professional試,要用release-xp

    其他人遇到的其他狀況:
    http://thorny-issues.blogspot.com/2008/11/volume-shadow-copy-service-vssebadstate.html

  5. Buganini says:

    今日實測結果:用cwrsync就對了
    server/client都用cwrsync 4.0.3
    unicode/long path都沒遇到問題
    concurrencency高的時候比robocopy穩又快

  6. Buganini says:

    ftp://security-hole.info/shadowSync.7z 本日成果

    感謝你囉 尤其是那個圖片
    之前拿錯的vshadow.exe跑半天跑不出來以為XP不支援

  7. chchang says:

    哪裡,您客氣了。我也是在碰到相同的問題之後,去網路上看到類似的解決方案(那個網站是提到在vista底下的相同狀況)才碰巧解決的。
    另外,的確是要用release-XP沒錯,應該是我在抓圖的時候點錯目錄了,明天上班再修正回來!

  8. Buganini says:

    接下來我打算拿
    http://www.microsoft.com/msj/0999/journal/journal.aspx
    生出changelist餵給rsync吃–include-from
    這樣就會快多了

  9. chchang says:

    hmmm
    changelist ? 第一個想法是用 find 去作,但是 windows 的find 和linux 底下的find 似乎完全不同的用途,所以沒辦法用mtime,ctime,atime去作篩選。3rd party的FREEWARE應該是有,只是要去找,不過那可能不在我的需求以內了。

  10. Buganini says:

    NTFS本身有journal的功能,檔案的變更有紀錄可查,就不用全部找一遍了。

Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

\/ More Options ...
Change Theme...
  • Users » 2
  • Posts/Pages » 361
  • Comments » 66
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight