<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wAdmin.ru &#187; DFS</title>
	<atom:link href="http://blog.wadmin.ru/tag/dfs/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.wadmin.ru</link>
	<description>Записки сисадмина</description>
	<lastBuildDate>Sun, 05 Feb 2012 12:00:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Бывают ли BSOD-ы из-за DFS?</title>
		<link>http://blog.wadmin.ru/2012/01/dfs-client-bug/</link>
		<comments>http://blog.wadmin.ru/2012/01/dfs-client-bug/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 17:11:10 +0000</pubDate>
		<dc:creator>Сергей Мариничев</dc:creator>
				<category><![CDATA[Заметки]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[FEP 2010]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>

		<guid isPermaLink="false">http://blog.wadmin.ru/?p=6058</guid>
		<description><![CDATA[Как выяснилось, бывают. Вот небольшая история об этом. Висящий в Микрософте инцидент, я описывал его ранее, наконец то закрыли. Хочется сказать несколько слов по существу проблемы. Инженер из МС сообщил что в DFS клиенте в [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-6059" title="bug" src="http://blog.wadmin.ru/wp-content/uploads/2012/01/bug.jpg" alt="bug" width="120" height="128" /></p>
<p>Как выяснилось, бывают. Вот небольшая история об этом.</p>
<p>Висящий в Микрософте инцидент, я <a title="FEP 2010 + update definition = BSOD?" href="http://blog.wadmin.ru/2011/12/fep-2010-blue-screen/">описывал</a> его ранее, наконец то закрыли. Хочется сказать несколько слов по существу проблемы. Инженер из МС сообщил что в DFS клиенте в операционной системе Windows 7 (соответственно и в Windows 2008 R2) есть баг который вроде как известен (с нас часы за инцидент не сняли), но пока его исправлять не планируется.</p>
<p>Теперь по существу.</p>
<p>Постараюсь максимально подробно описать проблему. Мало ли кто столкнется&#8230;</p>
<h3>Исходные условия</h3>
<p>Использование DFS-N серверов на базе Windows 2008 R2.</p>
<p>На DFS-линке должна быть включена опция INSITE.</p>
<p>Использование клиентов на Windows 7 (редакция значения не имеет). Как выяснилось в процессе экспериментов то баг есть в следующих ОСях:</p>
<ul>
<li>Windows 2008 Sp2 x64</li>
<li>Windows 7 (все платформы и все редакции)</li>
<li>Windows 2008 R2</li>
</ul>
<p><em>Примечание: Windows Vista не тестировали т.к. у нас ее попросту нет&#8230;</em></p>
<h3>Проблема</h3>
<p>BSOD описанный в моей старой <a title="FEP 2010 + update definition = BSOD?" href="http://blog.wadmin.ru/2011/12/fep-2010-blue-screen/">статье</a> наступал при попытке FEP 2010 обновится с UNC-папки на которой лежат обновления. Естественно, ДО этого все обновлялось прекрасно, потому что DFS-N серверы у нас были на Windows 2008. При их замене началось&#8230;</p>
<p>Первым &laquo;откликнулся&raquo; почтовый кластер. Мне как то стало нехорошо, потом еще хуже когда в синий экран выпал один из высоко нагруженных SQL серверов&#8230;</p>
<p>Дальше, по очереди, начали вылетать еще с пол-сотни серверов расположенные на этой площадке. После замены DFS-N-ов на &laquo;посинение&raquo; 40% серверного парка ушло примерно 40-50 минут. К моменту, когда разобрались в косвенной причине начали вылетать клиенты <img src='http://blog.wadmin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Не буду об ужасах&#8230;</p>
<p>Проблему локализовали, методом исключения нашли причину и открыли кейс. От МС была получена ценная рекомендация отключить IP v6 согласно статье (<a href="http://support.microsoft.com/kb/929852" rel="nofollow">http://support.microsoft.com/kb/929852</a>).</p>
<p>Объяснение простое &#8211; при включенном ipv6 DFS-N сервер может выдавать пустые таргеты, а клиент узрев что таргеты пустые самоубивается не выдержав такого наплевательского отношения <img src='http://blog.wadmin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Итог</h3>
<p>Экспериментировать не рекомендую, но если кто то воспроизведет проблему и поделится впечатлениями, думаю что всем будет интересно <img src='http://blog.wadmin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Если у вас DFS-N серверы на Windows 2008 R2 и на линках включена опция INSITE, то либо отключите ее, либо отключите поддержку IP v6 потому что данную багу до выхода Windows 8 скорее всего не исправят.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wadmin.ru/2012/01/dfs-client-bug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Прощай DFS</title>
		<link>http://blog.wadmin.ru/2011/07/goodbye-dfs/</link>
		<comments>http://blog.wadmin.ru/2011/07/goodbye-dfs/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 08:31:20 +0000</pubDate>
		<dc:creator>Сергей Мариничев</dc:creator>
				<category><![CDATA[Заметки]]></category>
		<category><![CDATA[DFS]]></category>

		<guid isPermaLink="false">http://blog.wadmin.ru/?p=3998</guid>
		<description><![CDATA[Имея довольно развитую структуру DFS и периодически сталкиваясь с ее фокусами я задался мыслью &#8211; а можно ли не зависить от причуд службы DFS? Как оказалось это довольно легко, но надо выгнять с чердака мышей и [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-3999" title="goodbye-DFS" src="http://blog.wadmin.ru/wp-content/uploads/2011/07/goodbye-DFS.jpg" alt="goodbye-DFS" width="150" height="183" />Имея довольно развитую структуру DFS и периодически сталкиваясь с ее <a title="Проблемы DFSR – часть 3 (event 2104)" href="http://blog.wadmin.ru/2010/02/dfsr-problem-part-3/">фокусами</a> я задался мыслью &#8211; а можно ли не зависить от <a title="Проблемы DFSR – часть 1 (event 4502)" href="http://blog.wadmin.ru/2010/02/dfsr-problem-part-1/">причуд</a> службы DFS?</p>
<p>Как оказалось это довольно легко, но надо выгнять с чердака мышей <img src='http://blog.wadmin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  и подключить к процессу голову <img src='http://blog.wadmin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Когда то давно у меня была задача по <a title="Powershell – синхронизация папок" href="http://blog.wadmin.ru/2011/04/folder-mirror/">синхронизации плоской папки</a>, в нем не было подпапок, и взяв ее за основу я дописал некоторый функционал при условии что изначальным заданием было:</p>
<ol>
<li>использовать для передачи BITS.</li>
<li>скрипт должен работать по расписанию.</li>
<li>из целевой папки должны удаляться &laquo;лишние&raquo; файлы.</li>
</ol>
<div>Немного переписав код добавил рекурсивный обход каталогов и взаимодействие с BITS.</div>
<p>В результате размышлений и чтения мануалов получился довольно скромный скрипт.</p>
<div class="codesnip-container" >
<div class="powershell codesnip" style="font-family:monospace;"><span class="co1"># импортируем модуль BitsTransfer</span><br />
import<span class="sy0">-</span>module BitsTransfer<br />
<span class="co1"># задаем исходную и целевую папку</span><br />
<span class="re0">$source</span> <span class="sy0">=</span> <span class="st0">&quot;\\SERVER\Deploy&quot;</span><br />
<span class="re0">$target</span> <span class="sy0">=</span> <span class="st0">&quot;D:\Public\Deploy&quot;</span></p>
<p><span class="co1"># функция синхронизации</span><br />
<span class="kw3">function</span> Mirror <span class="br0">&#123;</span></p>
<p><span class="kw3">param</span> <span class="br0">&#40;</span><span class="re0">$source</span><span class="sy0">,</span> <span class="re0">$dest</span><span class="br0">&#41;</span></p>
<p><span class="re0">$comparedirs</span> <span class="sy0">=</span> <span class="kw1">Compare-Object</span> <span class="br0">&#40;</span><span class="kw2">gci</span> <span class="re0">$source</span><span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="kw2">gci</span> <span class="re0">$dest</span><span class="br0">&#41;</span><br />
<span class="kw3">if</span> <span class="br0">&#40;</span><span class="re0">$comparedirs</span> <span class="sy0">|</span> <span class="kw1">Where-Object</span> <span class="br0">&#123;</span><a href="about:blank"><span class="kw6">$_</span></a>.SideIndicator <span class="kw4">-eq</span> ‘<span class="sy0">=&amp;</span>gt;’<span class="br0">&#125;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="re0">$comparedirs</span> <span class="sy0">|</span> <span class="kw1">Where-Object</span> <span class="br0">&#123;</span><a href="about:blank"><span class="kw6">$_</span></a>.SideIndicator <span class="kw4">-eq</span> ‘<span class="sy0">=&amp;</span>gt;’<span class="br0">&#125;</span> <span class="sy0">|</span> <span class="kw1">ForEach-Object</span><span class="br0">&#123;</span><span class="kw1">Write-Host</span> <span class="st0">&quot;Removing&quot;</span><span class="br0">&#40;</span><a href="about:blank"><span class="kw6">$_</span></a>.InputObject<span class="br0">&#41;</span>.FullName<br />
<span class="co1"># удаляем лишнее</span><br />
<span class="kw1">Remove-Item</span> <span class="br0">&#40;</span><a href="about:blank"><span class="kw6">$_</span></a>.InputObject<span class="br0">&#41;</span>.FullName<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="kw3">if</span> <span class="br0">&#40;</span><span class="re0">$comparedirs</span> <span class="sy0">|</span> <span class="kw1">Where-Object</span> <span class="br0">&#123;</span><a href="about:blank"><span class="kw6">$_</span></a>.SideIndicator <span class="kw4">-eq</span> ‘ <span class="re0">$comparedirs</span> <span class="sy0">|</span> <span class="kw1">Where-Object</span> <span class="br0">&#123;</span><a href="about:blank"><span class="kw6">$_</span></a>.SideIndicator <span class="kw4">-eq</span> ‘ <span class="co1"># копируем новое</span><br />
<span class="kw1">Write-Host</span> <span class="st0">&quot;Copying&quot;</span><span class="br0">&#40;</span><a href="about:blank"><span class="kw6">$_</span></a>.InputObject<span class="br0">&#41;</span>.FullName <span class="st0">&quot;to&quot;</span> <span class="re0">$dest</span><br />
<span class="re0">$bitsJobs</span><span class="sy0">=</span>Start<span class="sy0">-</span>BitsTransfer <span class="br0">&#40;</span><a href="about:blank"><span class="kw6">$_</span></a>.InputObject<span class="br0">&#41;</span>.FullName <span class="re0">$dest</span> <span class="sy0">-</span>Asynchronous <span class="sy0">-</span>Priority normal <span class="kw5">-displayname</span> MirrorJob<br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span> <span class="kw3">else</span> <span class="br0">&#123;</span><br />
<span class="kw1">Write-Host</span> <span class="st0">&quot;The directories are the same&quot;</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span></p>
<p><span class="co1"># запускаем опрос исходной папки</span><br />
<span class="re0">$folders</span> <span class="sy0">=</span> <span class="kw1">Get-childitem</span> <span class="re0">$source</span> <span class="kw5">-recurse</span><br />
<span class="kw3">foreach</span> <span class="br0">&#40;</span><span class="re0">$folder</span> <span class="kw3">in</span> <span class="re0">$folders</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="kw3">if</span> <span class="br0">&#40;</span><span class="re0">$folder</span>.Attributes <span class="kw4">-eq</span> <span class="st0">&quot;Directory&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="re0">$name</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">$folder</span>.FullName<span class="br0">&#41;</span>.replace<span class="br0">&#40;</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><br />
<span class="kw3">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="kw1">Test-Path</span> <span class="re0">$target</span><span class="re0">$name</span><span class="br0">&#41;</span> <span class="kw4">-ne</span> <span class="re0">$true</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="co1"># создаем структуру в целевой папке</span><br />
<span class="kw1">New-Item</span> <span class="re0">$target</span><span class="re0">$name</span> <span class="sy0">-</span><span class="kw2">type</span> directory<br />
<span class="br0">&#125;</span><br />
<span class="co1"># синхронизируем контент</span><br />
mirror <span class="re0">$folder</span>.FullName <span class="re0">$target</span><span class="re0">$name</span><br />
<span class="br0">&#125;</span><br />
<span class="br0">&#125;</span><br />
<span class="co1"># обрабатываем запущенные задания</span><br />
<span class="kw3">while</span> <span class="br0">&#40;</span><span class="re0">$mirrorJob</span><span class="sy0">=</span>Get<span class="sy0">-</span>BitsTransfer <span class="sy0">|</span> <span class="sy0">?</span><span class="br0">&#123;</span><a href="about:blank"><span class="kw6">$_</span></a>.DisplayName <span class="kw4">-eq</span> <span class="st0">&quot;MirrorJob&quot;</span><span class="br0">&#125;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
<span class="re0">$mirrorJob</span> <span class="sy0">|</span> <span class="sy0">?</span><span class="br0">&#123;</span><a href="about:blank"><span class="kw6">$_</span></a>.JobState <span class="kw4">-eq</span> <span class="st0">&quot;Transferred&quot;</span><span class="br0">&#125;</span> <span class="sy0">|</span> Complete<span class="sy0">-</span>BitsTransfer<br />
<span class="kw1">Start-Sleep</span> <span class="nu0">300</span><br />
<span class="br0">&#125;</span></div>
</div>
<p>PS я не призываю никого отказываться от DFS. Просто есть альтернативные методы&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wadmin.ru/2011/07/goodbye-dfs/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Правильный метод очистки папки конфликтов DFS</title>
		<link>http://blog.wadmin.ru/2010/09/cleanup-conflictdirectory/</link>
		<comments>http://blog.wadmin.ru/2010/09/cleanup-conflictdirectory/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 06:49:59 +0000</pubDate>
		<dc:creator>Сергей Мариничев</dc:creator>
				<category><![CDATA[Инструменты]]></category>
		<category><![CDATA[DFS]]></category>

		<guid isPermaLink="false">http://blog.wadmin.ru/?p=1379</guid>
		<description><![CDATA[Для каждой папки участника репликации имеется ее собственная папка конфликтов. Расположена она как правило в папке DfsrPrivate\ConflictAndDeleted. Размер по умолчанию составляет 660 Мб, но он может быть при необходимости изменен. Как и для папки стейджинга [...]]]></description>
			<content:encoded><![CDATA[<p>Для каждой папки участника репликации имеется ее собственная папка конфликтов. Расположена она как правило в папке <strong>DfsrPrivate\ConflictAndDeleted</strong>. Размер по умолчанию составляет 660 Мб, но он может быть при необходимости изменен.</p>
<p><a href="http://blog.wadmin.ru/wp-content/uploads/2010/09/conflict.png"><img class="aligncenter size-thumbnail wp-image-1391" title="ConflictAndDeleted" src="http://blog.wadmin.ru/wp-content/uploads/2010/09/conflict-150x150.png" alt="" width="150" height="150" /></a></p>
<p>Как и для папки стейджинга для папки конфликтов имеется верхняя и нижняя метки заполнения &#8211; 60 и 90% от установленной квоты.</p>
<p>В случае если требуется ручная очистка папки необходимо выполнить ниже перечисленные процедуры.</p>
<p>Примечания: Никто не мешает зайти в папку и удалить файлы средствами проводника Windows, но приведенный метод является рекомендуемым и &laquo;правильным&raquo;.</p>
<h4>Шаг 1.</h4>
<p>Запрашиваем список имеющихся DFS-папок.</p>
<pre>WMIC.EXE /namespace:\\root\microsoftdfs path dfsrreplicatedfolderconfig get replicatedfolderguid,replicatedfoldername</pre>
<p>Результат успешной отработки введенной команды будет следующим.</p>
<pre>ReplicatedFolderGuid                  ReplicatedFolderName
8619C454-91F3-4C6F-A1DF-59BDED2329C7  Projects
6D526E32-51EC-46E7-99D8-1859B412DBD1  Works
C4E5FD05-E570-4D9D-9387-924B52A13610  Departments
1B510B83-1522-4999-8522-A5FC45B9483C  Users
4F48ABE3-64E4-435E-903F-8C8154387A77  Enterprise</pre>
<h4>Шаг 2.</h4>
<p>Производим очистку папки конфликтов следующей командой.</p>
<pre>WMIC.EXE /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo where "replicatedfolderguid='’" call cleanupconflictdirectory</pre>
<p>Где вместо replicatedfolderguid указываем нужный GUID.<br />
В моем случае это выглядит так.</p>
<pre>WMIC.EXE /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo where "replicatedfolderguid='1B510B83-1522-4999-8522-A5FC45B9483C'" call cleanupconflictdirectory</pre>
<p>Результатом успешной очистки папки будет.</p>
<pre>Executing (\\FS-01\root\microsoftdfs:DfsrReplicatedFolderInfo.ReplicatedFolderGuid="1B510B83-1522-4999-8522-A5FC45B9483C")-&gt;cleanupconflictdirectory()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 0;
};</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.wadmin.ru/2010/09/cleanup-conflictdirectory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DFS Error &#8211; Windows Server 2008</title>
		<link>http://blog.wadmin.ru/2010/09/dfs-error-windows-server-2008/</link>
		<comments>http://blog.wadmin.ru/2010/09/dfs-error-windows-server-2008/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 07:00:23 +0000</pubDate>
		<dc:creator>Сергей Мариничев</dc:creator>
				<category><![CDATA[Ремонт]]></category>
		<category><![CDATA[DFS]]></category>
		<category><![CDATA[dfsutil]]></category>

		<guid isPermaLink="false">http://blog.wadmin.ru/?p=1323</guid>
		<description><![CDATA[При ремонте DFS на одном из серверов наткнулся на такую ошибку. The server you specified already hosts a namespace with this name. Please select another namespace name or another server to host the namespace. Как [...]]]></description>
			<content:encoded><![CDATA[<p>При ремонте DFS на одном из серверов наткнулся на такую ошибку.</p>
<p><img class="aligncenter size-full wp-image-1324" title="dfserror" src="http://blog.wadmin.ru/wp-content/uploads/2010/09/dfserror.png" alt="dfserror" width="413" height="149" /><br />
The server you specified already hosts a namespace with this name. Please select another namespace name or another server to host the namespace.</p>
<p>Как исправить:<br />
1. Запускаем </p>
<pre>
dfsutil diag ViewDfsDirs D: RemoveReparse Verbose
</pre>
<p>что бы удалить все DFS-папки с этого хоста.<br />
<strong>Внимание!</strong> эта команда удаляет все имеющиеся DFS НэймСпейсы.<br />
2. Удаляем ключи из реестра:</p>
<pre>HKLM\SOFTWARE\Microsoft\Dfs\Roots\Domain\Your_Old_Namespace
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares\Your_Old_Namespace
HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares\Security\Your_Old_Namespace</pre>
<p>3. Перезагружаемся.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.wadmin.ru/2010/09/dfs-error-windows-server-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

