91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用FSRM的Task 的自定義Action功能并利用Hardlink功能來備份數據

發布時間:2020-05-20 22:56:42 來源:網絡 閱讀:4054 作者:yoke88 欄目:建站服務器

背景信息:


    1. 我們的數據存放位置有三個,本地、同城、異地。備份數據會放本地,然后常規通過DFS同步到同城、異地兩個地方。由于DFS的特性是雙向同步的,所以你如果在一個地方刪除、更新文件,那么三個地方是會同步更新成一致的。

    2. 由于數據量的大小的限制,我沒有辦法無限制的保存數據在服務器上,因此會定期把舊備份刪除。但是我異地的服務器的本地硬盤又比較大,我又想差異化的把歷史數據最大限度的在異地服務器上進行保存。

解決方案:


    1. File Server Resource Manager 的File Managerment Task 功能可以針對文件的創建日期、修改日期或者自定義分類屬性進行過濾,并且執行自定義action. 這里的自定義action 我們使用powershell 腳本。

    2. powershell 腳本針對過濾出的文件在另外一個目錄對源文件執行mklink /H 操作(創建硬鏈接,硬鏈接的好處是如果DFS目錄下的文件刪除了,實際的文件是不會刪除的,因為還有一個硬鏈接引用實際的文件數據,硬鏈接會比Copy更快,IO會非常小)。

    3. File Server Resource Manager 自帶報告功能,因此可以對操作過的文件進行報告生成。

創建一個分類屬性IsHardLinkCreated ,這個屬性我們用來過濾篩選沒有hardlink 過的文件(powershell 腳本會在hardlink 文件后,設置這個屬性)。

使用FSRM的Task 的自定義Action功能并利用Hardlink功能來備份數據

在c:\scripts\makelink.ps1 中做下面文件內容

param([string]$FileSource, [string]$FolderDestination)

# Capture source folder name and filename
$SourceFileName = (Get-Item $FileSource).Name
$SourceFolder = (Get-Item $FileSource).DirectoryName

# Destination Path
$DestinationPath = $FolderDestination + "\" + $SourceFolder.Substring(3, $SourceFolder.Length-3)

# Check Destination Path, create if doesn't exist
$CheckedPath = Get-Item $DestinationPath -ErrorAction SilentlyContinue
if ($CheckedPath -eq $null) {
    New-Item -Path $DestinationPath -ItemType Directory |Out-Null
}

$destFile=$DestinationPath + "\" + $SourceFileName

# test whether dest file exist ,if exist delete it .
if(test-path $destFile){
    Remove-Item -Path $destFile -Force
}

# Move original file
# Move-Item -Path $FileSource -Destination $DestinationPath -Force

# Create Hard link to origin file in destation folder
$expr = Invoke-Expression -Command ("cmd /c mklink /H `"" + $destFile + "`" `"" +$FileSource  + "`"")


# Please create Classification properties in File server resource manager named IsHardLinkCreated first

$cls = New-Object -com Fsrm.FsrmClassificationManager
$cls.setFileProperty($FileSource,"IsHardLinkCreated",1)
$cls=$nothing

創建File Management Tasks 的powershell 腳本。c:\scripts\CreateFSRMTask.ps1

$Command = "C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe"
$CommandParameters = "`"C:\scripts\MakeLink.ps1 -FileSource '[Source File Path]' -FolderDestination 'E:\Expired'`""
$Action = New-FSRMFmjAction -Type Custom -Command $Command -CommandParameters $CommandParameters -SecurityLevel LocalSystem -WorkingDirectory "C:\Windows\System32\WindowsPowerShell\v1.0\"

$Condition = New-FsrmFmjCondition -Property "File.DateCreated" -Condition LessThan -Value "Date.Now" -DateOffset -5
$condition2=New-FsrmFmjCondition -Property "IsHardLinkCreated" -Condition NotExist

$Schedule = New-FsrmScheduledTask -Time (Get-Date) -Weekly Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

New-FsrmFileManagementJob -Name "Make Hard Link of old files" -Namespace "E:\DR_FromSZ" -Action $Action -Condition $Condition,$condition2 -Schedule $Schedule




使用FSRM的Task 的自定義Action功能并利用Hardlink功能來備份數據

另外已經做過hardlink的文件會標記分類


使用FSRM的Task 的自定義Action功能并利用Hardlink功能來備份數據


這個時候即使DFS目錄的源文件被刪除,做了hardlink 的Expired 子目錄下的文件也還存在。


參考信息:

https://blogs.technet.microsoft.com/filecab/2009/05/11/customizing-file-management-tasks/

https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.storage.fsrmclassificationmanagerclass.setfileproperty(v=vs.85).aspx



總結:

  1. hardlink 如果創建后,源文件刪除,再在源位置創建同名文件,目標文件不會更新,這個時候如果要再創建hardlink ,需先刪除目標。

  2. 由于這個powershell 的自定義任務我感覺是順序執行,而且針對每個文件調用一次powershell腳本,所以效率不是很高,但是對于備份后的大文件應該問題不大(因為大部分系統一天也就幾個大的備份文件),如果是很多小文件,執行時間就估計會比較慢。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新乡市| 嘉荫县| 肇源县| 新平| 沧源| 兴隆县| 墨竹工卡县| 彰化市| 黔南| 荆门市| 中超| 长岛县| 宜川县| 赣州市| 咸阳市| 潞城市| 新蔡县| 普安县| 新津县| 教育| 民乐县| 安达市| 海兴县| 任丘市| 商都县| 于田县| 甘泉县| 高唐县| 吉林省| 吉木乃县| 凤冈县| 德兴市| 宁晋县| 华宁县| 江陵县| 广平县| 天峨县| 呼图壁县| 上林县| 连山| 万全县|