Görünüşe göre Robocopy Windows Server 2016 tekilleştirmesini anlamıyor. Hacmi bozmadan çalışmasını sağlamanın bir yolu var mı?


13

Senaryo:

  • Bu Sunucu Hata kılavuzunu izleyerek eski Server 2008 R2'den yeni Server 2016'ya sunucu geçişi yapma : Robocopy kullanarak dosya sunucusu geçişi

  • Robocopy tamamlandıktan sonra, kopyalanan birim için Server 2016'da veri tekilleştirmeyi etkinleştirin ve ardından el ile veri kaldırma işlemini başlatmak için PowerShell'i kullanın. Uzun saatler sonra disk alanının yaklaşık% 25'ini tamamlar ve kurtarır.

  • Yeni sunucunun son kontrolü olarak ilk kopyada gözden kaçmış olabilecek herhangi bir şeyi kopyalamak için Robocopy'yi tekrar çalıştırın.

.... ancak Robocopy (Server 2016'dan çalıştırılır) tekilleştirmeyi anlamaz ve bunun yerine tekilleştirme yığınını çöpe atmaya devam eder.

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : Sunday, July 8, 2018 12:10:02 PM
   Source : \\SERVER-2008\e$\
     Dest : \\SERVER-2016\e$\

    Files : *.*

  Options : *.* /TEE /S /E /COPYALL /PURGE /MIR /ZB /NP /MT:32 /R:1 /W:10 

------------------------------------------------------------------------------

    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\
      *EXTRA File         253504    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\DedupFileList.1
      *EXTRA File         253504    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\DedupFileList.2
      *EXTRA File             28    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\stamp.dat
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\
    *EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\00010000\
      *EXTRA File         196608    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\00010000\00000046.00.RB
      *EXTRA File         106496    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\COW\00010000\00000048.00.RB

[.......]

*EXTRA File           30.3 m    \\SERVER-2016\e$\System Volume Information\Dedup\ChunkStore\{B7E1F3A4-AAD9-4449-9DF7-5489421C9EC5}.ddp\Stream\000f0000.00000002.ccc
*EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\
  *EXTRA File         29.7 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\00000001.kmchange.log
  *EXTRA File        999.8 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.10.archive.etl
  *EXTRA File       1000.0 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.11.archive.etl
  *EXTRA File        735.5 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.12.archive.etl
  *EXTRA File        999.8 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.1.9.archive.etl
  *EXTRA File          1.3 m    \\SERVER-2016\e$\System Volume Information\Dedup\Logs\changes.optimization.2.1.archive.etl
*EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\
  *EXTRA File             76    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\Dedup.00.cfg
  *EXTRA File             76    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\Dedup.01.cfg
  *EXTRA File           2228    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\dedupConfig.01.xml
  *EXTRA File           2228    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\dedupConfig.02.xml
  *EXTRA File              0    \\SERVER-2016\e$\System Volume Information\Dedup\Settings\VolumeJobLock.bin
*EXTRA Dir        -1    \\SERVER-2016\e$\System Volume Information\Dedup\State\
  *EXTRA File           2982    \\SERVER-2016\e$\System Volume Information\Dedup\State\chunkStoreStatistics.xml
  *EXTRA File           2592    \\SERVER-2016\e$\System Volume Information\Dedup\State\dedupStatistics.xml
  *EXTRA File         11.5 m    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceBitmap.tmp
  *EXTRA File          1.0 g    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceContainer.ccc
  *EXTRA File         46.0 m    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceDeleteLogs.tmp
  *EXTRA File          1.0 m    \\SERVER-2016\e$\System Volume Information\Dedup\State\GCReservedSpaceFileList.tmp
  *EXTRA File           4096    \\SERVER-2016\e$\System Volume Information\Dedup\State\GroupCommitFlushControl0.bin
  *EXTRA File           2066    \\SERVER-2016\e$\System Volume Information\Dedup\State\optimizationState.xml

[......]

Günlükte bu sineği gördükten ve neler olduğunu anladıktan sonra anları iptal ettim. Ancak hasar zaten yapılmış, tekilleştirilen yeni sunucudaki veriler \ System Volume Information aracılığıyla depolandığı için Robocopy tarafından anında bozuldu. Yeni sunucu sürücüsü bölümü, Server 2008'den itibaren yeniden biçimlendirilmiş ve yeniden kopyalanmıştır.

Tekilleştirme hacmi verilerine dokunmaması için Robocopy'yi kullanmanın güvenli bir yolu var mı?

Ayrıca, yeni bir endişem var .. Robocopy tekilleştirilmiş bir birimi yok edebilirse, tekilleştirilmiş bir birim ile kullanmak için güvenli olmayan, bunun içinden gören ve yalnızca sunucu tarafından erişilebilir olması gereken temel verileri yok edebilecek başka ne var? (muhtemelen ayrı bir soru olmalı ..)


5
Nerede olan /MIRanahtarda ne olmasını bekliyordunuz ? "Ayna", hedefi kaynağın bir kopyası yapmak anlamına gelir. Robocopy güçlüdür ... ve elbette bunun ne anlama geldiğini biliyoruz: Büyük güçle büyük sorumluluk gelir! MIRror a directory tree (equivalent to /E plus /PURGE/PURGE :: delete dest files/dirs that no longer exist in source
davidbak

"\ Sistem Birim Bilgisi" normalde erişilemez ve tüm programların normalde ona erişmesi engellenir. Yönetici komut isteminden çalıştırıldığında bile Robocopy'nin oraya girebilmesinin hiçbir yolu olmamalıdır. Aynı Server 2016'da manuel olarak erişmeye çalışalım: Başlat -> Komut istemi -> Yönetici Olarak Çalıştır. CD \ System Volume Bilgileri. Giriş reddedildi.
Dale Mahalko

Bu doğru. Ayrıca, /ZB :: use restartable mode; if access denied use Backup modetam yedekleme yapmak için "normal" okunamayan dosyaları okuyabilmek için Yedekleme modunun çoğu izni yendiği yerlerde kullandığınızı da belirtmeliydim . Bu arada bir kombinasyon oldu /Bve /MIRsizi içeriyordu. Robocopy güçlü ... yukarıda belirttiğim gibi ...
davidbak

Greg'in harika cevabını takip etmek - seçim verildiğinde, taşıma işlemini bitirene kadar tekilleştirme işlemini bırakın.
Tim Brigham

Yanıtlar:


16

System Volume InformationDizin / XD anahtarını kullanarak ekarte edilmelidir. Muhtemelen diğer gizli / sistem dizinlerini hariç tutmak iyi bir fikirdir $RECYCLE.BIN.


5

Kullanılan iki komut satırı anahtarı buna yol açar: /MIRve /ZB. Dokümantasyonda ( robocopy /???) açıklandığı gibi:

/ MIR :: MIR Bir dizin ağacı (/ E plus / PURGE öğesine eşdeğer) yazın.
/ ZB :: yeniden başlatılabilir modu kullan; erişim reddedilirse Yedekleme modunu kullanın.

Sizi yapan kombinasyon: /MIRsilecek ( robocopybağımsız değişkenler olmadan çalıştırdığınızda belirtildiği gibi ) ve "Yedekleme modu", tam yedeklemeler yapmak için "normal" okunamayan dosyaları okuyabilmek için çoğu izni yener.

"Yedekleme modu", "yardım" açıklamasında özellikle tanımlanmamıştır. Windows CreateFileAPI'nın, FILE_FLAG_BACKUP_SEMANTICSbelirli bir erişim hakkıyla birlikte SE_BACKUP_NAME( varsayılan olarak Yönetici grubuna verilen Yedekleme Operatörleri grubu, duh) normal dosya güvenliğini atladığı adlı bir bayrağı desteklediğini bilmelisiniz .

Bunu bilmiyor muydun? O zaman da robokopinin orijinal olarak Windows'un bir parçası olmadığını bilemeyebilirsiniz - esas olarak programcılar ve sabit çekirdekli sistem yöneticileri tarafından gün içinde kullanılan "Windows Kaynak Seti" adlı bir ekin parçasıydı ve Windows Server 2008 işletim sistemindeki Windows dağıtımına daha önce hiçbir zaman ilgi göstermedi - ek performans seçenekleri hariç, woot! Özellikle, kullanıcı arayüzüne veya kullanılabilirliğe adanmış program yöneticilerinin dikkatini çekmez . Bu yüzden kullanılabilen ya da yanlış bir ham güç! - kendi sorumluluğunuzdadır.

(İyi bir kural: Gerçekten anlamadığınız komut satırı seçeneklerini kullanmayın.)

"Yedekleme modu" dosya erişimi hakkında bilmek isteyebileceğiniz bilgiler:

https://isc.sans.edu/forums/diary/Use+The+Privilege/20483/

https://docs.microsoft.com/en-us/windows/desktop/api/FileAPI/nf-fileapi-createfilea

https://docs.microsoft.com/en-us/windows/desktop/FileIO/file-security-and-access-rights


1
BTW /Z"yeniden başlatılabilir mod" hakkında tehlikeli bir şey yok (AFAIK) . BSorunlu olan bu ...
davidbak

Her bir hesap dizinindeki ayrı sahibi ve güvenlik verileriyle birlikte dosya sunucusu etki alanı hesapları, / B kullanılmadan yönetici hesabı kullanılarak tam ve tamamen kopyalanabilir (/ COPYALL veya / COPY: DATSOU)?
Dale Mahalko

@DaleMahalko - TBH Bilmiyorum. Windows'u birkaç on yıl boyunca programlamış olmama rağmen kaçındığım yönler var ve bu yüzden sadece Windows güvenliğiyle ilgili olarak gerektiğinde evsiz kalmam için yeterince şey biliyorum ... Ben her zaman bir Yönetici üyesi olarak, Grup İlkesi'ne girerim ve herşeyi tamamen güçlendiririm, vb. Belki başka biri bilir?
davidbak

1

Aşağıda verilen diğer yanıtları kullanan ve tekilleştirilen bir hedefle test edilen takip sonuçları verilmiştir. ( Meta: Orijinal sorumun altına bir düzenleme olarak eklemem gerekip gerekmediğini bilmiyorum. )

Robocopy komut satırı nihayet şöyle görünmeye başladı:

robocopy \\OLD-SERVER\e$\ \\NEW-SERVER\e$\ /MIR /COPYALL /DCOPY:DAT /NP /Z /B /J /SL /MT:128 /R:1 /W:10 /LOG+:robocopy-log.txt /TEE /XD "Recycler" "Recycled" "$Recycle.bin" "System Volume Information" /XF "pagefile.sys" "swapfile.sys" "hiberfil.sys"

Seçenekler ve amaç:

  • / MIR - Kaynağı hedefe yansıtma ve kaynakta artık yoksa hedef ve hedef dosyaları ve dizinleri silme
  • / COPYALL - Tüm dosya bilgilerini kopyala: veriler, öznitelikler ve zaman damgaları, NTFS Güvenlik EKL'leri, Sahip bilgileri, Denetim bilgileri (tümü varsayılan olarak dahil değildir)
  • / DCOPY: DAT - Tüm dizin bilgilerini kopyala - veriler, öznitelikler, zaman damgaları (orijinal oluşturma zaman damgası varsayılan olarak kopyalanmaz; normalde bu Robocopy tarafından kopyalandığı tarihe değişir)
  • / NP - İlerleme gösterme
  • / Z - Yeniden başlatılabilir modu kullan
  • / B - Dosyaları Yedekleme modunda kopyala (Yönetici dışında, yalnızca münhasır sahibi oldukları kullanıcı dizinleri için gerekli olup olmadığını bilmiyorum. Bu seçenek, "Sistem Birim Bilgileri" hariç tutulmadan tekilleştirilen bir hedef birimini yok eder)
  • / J - Arabelleğe alınmamış G / Ç kullanarak kopyalama (büyük çok gigli dosyaların daha hızlı kopyası)
  • / SL - Hedef yerine sembolik bağlantıları kopyala
  • / MT: 128 - Maksimum CPU iş parçacığı kullan (10 gigabit Ethernet ve birçok CPU çekirdeğinin daha iyi kullanımı)
  • / R: 1 - Dosya erişim hatası varsa, 1 kez tekrar deneyin
  • / W: 10 - Dosya erişim hatası varsa, yeniden denemeden önce 10 saniye bekleyin
  • / LOG + - Çıktıyı metin dosyasına günlüğe kaydet, günlük dosyası zaten varsa ekle
  • / TEE - Sonuçları ekrana ve günlük dosyasına yazdır
  • / XD - Dizinleri ve içindeki her şeyi hariç tut. İçinde boşluk olan isimler tırnak içine alınmalıdır: "Geri Dönüşümcü" "Geri Dönüştürülmüş" "$ Recycle.bin" "Sistem Birim Bilgisi"
  • / XF - Dosyaları hariç tut: sanal bellek ve hazırda bekletme dosyaları, kaynakta varsa: "pagefile.sys" "swapfile.sys" "hiberfil.sys"

Son tekrar çalıştırma:

            Total    Copied   Skipped  Mismatch    FAILED    Extras 
 Dirs :    158189    153466    158186         0         0         0
Files :   1116292         0   1116296         0         0         0
Bytes :   1.350 t         0   1.350 t         0         0         0
Times :   0:01:04   0:00:00                       0:00:00   0:01:04

Patlama raporu

,

Ayrıca, Microsoft'a hataları bildirmek için uygun kanalları bilmiyorum, ancak bu tartışmaya Microsoft'un veri tekilleştirme belgelerinin altındaki Windows IT Pro Center web sitesinde bağlantı verdim :

https://docs.microsoft.com/en-us/windows-server/storage/data-deduplication/overview


/MT:128oldukça yüksek görünüyor; bu kadar yüksek (ve daha düşük bir değerin ötesine geçmenin tersine etkili değil) ayarlamanın gerçekten etkili olduğunu buldunuz mu?
davidbak

1
PS: Komut satırında çalışmayı seviyorum. Bu hassas işlevselliğe ulaşmak için yavaşça uğraşmanız gereken kötü sekmeli iletişim kutusunu düşünün. Ve bu kullanıcı arayüzlerinden hiçbirinin "kaydetme" modu olmadığından, bunu her seferinde yapmanız gerekir!
davidbak

Neden son kullanıcıya iş parçacığı kontrolü maruz zahmet zahmet bilmiyorum. Sonunda bir dakika içinde 1,5 TB veri üzerinden hiçbir değişiklik göstermez. Bu nedenle, maksimum iş parçacığı kullanan "etki" ne olursa olsun önemli değil. Bu performans benim için oldukça kabul edilebilir.
Dale Mahalko

@DaleMahalko - Ben şahsen maksimum konuları kontrol edebilmek için yararlı buldum. Her biri birkaç saat süren kopyalanacak 10 dosyam varsa MT: 2, bir seferde yalnızca 2 dosya kopyalama iş parçacığının etkin olmasını sağlar. Kesintilerin olduğu güvenilmez veya karmaşık altyapılarda MT: 2, MT: 10'um olsaydı (tüm dosyalar aynı anda kopyalanırsa) 10 yerine 2 dosya kopyasının iptal edilmesini sağlar. Bu durumda, 10 dosyadan son 2 dosyasında kesinti meydana gelirse, bunların hepsinden ziyade yalnızca yeniden başlatılması (diğer 8 tanesinin kopyalanması) gerekir.
Rod

Robocopy'yi en son kullandığımdan bu yana uzun zaman geçti ama sınırlı sayıda iş parçacığının iki sunucu arasındaki ağ bağlantısını doyurmadığını hatırlıyorum, ancak daha fazla iş parçacığı yapıyor. Ve bu gerçekten odak noktası olmalı. Maksimum iş parçacığı belirtmek yararsızdır, ancak "X bant genişliği geçinceye kadar yavaşça daha fazla iş parçacığı ekleyin ve eşiğin üstünde ise kopyalar bittikçe daha fazla iş parçacığı eklemeyin" gerçekten yararlıdır ve her iki ihtiyacımızı da karşılar.
Dale Mahalko

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.