مقدمه
Namespace مسیر ثابت میدهد و Replication داده را کپی میکند؛ هیچکدام بهتنهایی backup نیستند. حذف یا overwrite میتواند به عضو دیگر هم منتقل شود.
مثال عملی
دو شعبه از مسیر ثابت Company/Data استفاده میکنند. FS01 منبع اولیه و FS02 مقصد sync است؛ کاربران تا پایان initial sync روی FS02 نمینویسند.
پیشنیازها
Windows Server 2022/2025 عضو AD DS؛ PowerShell DFSN/DFSR. volume محتوای replicated در این baseline NTFS است؛ DFS-R روی ReFS پشتیبانی نمیشود.
سختافزار و ظرفیت: دو file server با storage جدا، ظرفیت staging بر اساس بزرگترین فایلها و فضای conflict/deleted؛ حداقل ظرفیت ثابت بدون inventory فایلها اعلام نشود.
نرمافزار و دسترسی: مجوز نصب role روی هر server، delegation namespace/replication در AD، SMB share و NTFS آماده. نمونه domain corp.example.com، serverهای FS01/FS02 و volume D: موجود باشند.
Architecture / Design
Client → AD referral/DFS-N → SMB target. DFS-R جدا از مسیر دسترسی، فایل بستهشده را بین اعضا replicate میکند. replication multi-master به معنی file locking بین سایتها نیست.
Installation / Configuration
روی هر دو file server، role و مسیر را آماده کنید. D: باید volume NTFS مناسب باشد. گروه CORP\FileUsers placeholder گروه واقعی سازمان است.
Install-WindowsFeature FS-DFS-Namespace,FS-DFS-Replication -IncludeManagementTools
New-Item -ItemType Directory -Path 'D:\DFSRoots\Company','D:\Data' -Force | Out-Null
New-SmbShare -Name Company -Path 'D:\DFSRoots\Company' -ReadAccess 'CORP\FileUsers'
New-SmbShare -Name Data -Path 'D:\Data' -ChangeAccess 'CORP\FileUsers'
Get-WindowsFeature FS-DFS-Namespace,FS-DFS-Replication
NTFS ACL نیز با گروه مالک داده طراحی و اعمال شود؛ Share permission بهتنهایی اجازه NTFS نمیدهد. از یک management host دارای module و delegation:
Import-Module DFSN
Import-Module DFSR
New-DfsnRoot -Path '\\corp.example.com\Company' -TargetPath '\\FS01\Company' -Type DomainV2
New-DfsnRootTarget -Path '\\corp.example.com\Company' -TargetPath '\\FS02\Company'
New-DfsnFolder -Path '\\corp.example.com\Company\Data' -TargetPath '\\FS01\Data'
New-DfsnFolderTarget -Path '\\corp.example.com\Company\Data' -TargetPath '\\FS02\Data' -State Offline
New-DfsReplicationGroup -GroupName 'Company-Data'
New-DfsReplicatedFolder -GroupName 'Company-Data' -FolderName 'Data'
Add-DfsrMember -GroupName 'Company-Data' -ComputerName 'FS01','FS02'
Add-DfsrConnection -GroupName 'Company-Data' -SourceComputerName 'FS01' -DestinationComputerName 'FS02'
Set-DfsrMembership -GroupName 'Company-Data' -FolderName 'Data' -ComputerName 'FS01' -ContentPath 'D:\Data' -PrimaryMember $true -Force
Set-DfsrMembership -GroupName 'Company-Data' -FolderName 'Data' -ComputerName 'FS02' -ContentPath 'D:\Data' -Force
Add-DfsrConnection بهصورت پیشفرض reverse connection نیز میسازد؛ topology را با Get-DfsrConnection بررسی کنید. روی نصب موجود createها را تکرار نکنید. propagation AD و initial sync زمان میبرد. PrimaryMember فقط انتخاب منبع initial sync است. مقصد FS02 با State Offline ساخته میشود تا پیش از پذیرش referral دریافت نکند؛ دسترسی مستقیم کاربران به share مقصد را نیز در زمان initial sync محدود کنید. قبل پذیرش، فایل canary بستهشده از FS01 به FS02 با hash یکسان برسد و backlog هر دو جهت صفر شود. پس از تأیید این شروط، فقط دستور زیر مقصد را Online میکند.
Set-DfsnFolderTarget -Path '\\corp.example.com\Company\Data' -TargetPath '\\FS02\Data' -State Online
Get-DfsnFolderTarget -Path '\\corp.example.com\Company\Data'Security Hardening
SMB و RPC/DFSR فقط بین اعضا و subnetهای مصرفکننده مطابق firewall رسمی Windows مجاز باشد؛ range پورت dynamic RPC را با policy سازمان هماهنگ کنید. ACL share و NTFS، SMB signing و audit access لازماند؛ کاربران end-user روی namespace root write نداشته باشند.
Monitoring
backlog هر جهت، DFS Replication event log، staging pressure، disk space و conflict/deleted پایش شود. backlog لحظهای طبیعی است؛ backlog رو به رشد چند interval مهم است. Zabbix checkها context حساب مانیتورینگ مشخص داشته باشند.
Troubleshooting
namespace سالم ولی فایل قدیمی: DFS-R و backlog جدا بررسی شوند. دستورهای تشخیص روی میزبان دارای module:
Get-DfsrConnection -GroupName 'Company-Data'
Get-DfsrBacklog -GroupName 'Company-Data' -FolderName 'Data' -SourceComputerName 'FS01' -DestinationComputerName 'FS02' -Verbose
Get-DfsrBacklog -GroupName 'Company-Data' -FolderName 'Data' -SourceComputerName 'FS02' -DestinationComputerName 'FS01' -Verbose
Get-WinEvent -LogName 'DFS Replication' -MaxEvents 30
Test-NetConnection FS02 -Port 445
backlog cmdlet فهرست محدود نشان میدهد؛ count کامل در verbose بررسی شود. DB یا فایل open ممکن است replicate نشود؛ staging insufficient یا content freshness نیاز بررسی event دارد. database DFS-R را برای رفع خطا حذف نکنید.
Backup / Recovery
VSS-aware backup مستقل از share و AD/namespace تهیه و نسخه off-site/immutable نگهداری شود. در restore فایل، propagation overwrite را مدیریت کنید؛ restore اولیه در مسیر ایزوله و مقایسه ACL/hash انجام شود، سپس فایل منتخب با Change Record برگردد. خرابی عضو: rebuild و non-authoritative sync طبق مستندات Microsoft؛ روی دو عضو primary همزمان ندهید. RPO تابع backup واقعی است، نه فقط سرعت DFS-R.
Best Practices
DFS-R برای فایلهای بسته و workflow سازگار است؛ database live، VM disk فعال و فایل مشترک دارای locking بین شعبهها workload مناسب این طرح نیستند. initial sync پیش از referral کاربران تأیید شود.
نسخههای قدیمی و Compatibility
DFS-N و DFS-R نقشهای جدا دارند. این نمونه domain-based است؛ standalone namespace رفتار HA متفاوت دارد. volume replicated در baseline NTFS باشد.
پرسشهای متداول
آیا DFS-R جای backup است؟
خیر؛ حذف و overwrite میتوانند replicate شوند و backup مستقل لازم است.
آیا PrimaryMember رهبر دائمی است؟
خیر؛ برای initial sync استفاده میشود و replication معمول multi-master است.
منابع رسمی
- Microsoft: DFS target state
- Microsoft: DFS-R overview
- Microsoft: DFS namespace deployment
- Microsoft: DFSR PowerShell
تاریخ بررسی منابع: 2026-09-30. اعتبارسنجی عملی روی محیط هدف باید پیش از انتشار تغییر زیرساخت انجام شود.