Добрый день, господа.
Мне потребовалось удалить большое количество файлов по заранее созданному списку, и для решения задачи я написал простой скрипт PowerShell:
$ListFiles = @(Get-Content C:\list.txt)
ForEach($FileFullName in $ListFiles)
{
$FileFullName
Remove-Item $FileFullName
}
Файл list.txe содержал ~480 000 строк, одна строка = один файл. Суммарный объём удаляемых файлов составил ~40 TB. Пример содержимого:
c:\026fa350fa7840df849070b594e8ff38\1\1\d2987171fade4b60985a0afae845c4d0.fidx
c:\026fa350fa7840df849070b594e8ff38\1\1\d2987171fade4b60985a0afae845c4d0\996df0dcfab94cf0bc4184b33b3bf806
c:\026fa350fa7840df849070b594e8ff38\1\1\d2987171fade4b60985a0afae845c4d0\af971067f0b34776b137def9a5dfc691
c:\026fa350fa7840df849070b594e8ff38\1\1\d2987171fade4b60985a0afae845c4d0\c78b71204c5c4e12a81fd1eb9ac40726
c:\06cfa7e917964f50ae1c0e39395ee808.dsc
c:\14c26905802b43b8bd4464bbf7203fd5\1\1\4664a71b596146989626e51f282b25d6.fidx
c:\14c26905802b43b8bd4464bbf7203fd5\1\1\4664a71b596146989626e51f282b25d6\0093053c2abc4ea981ae27aef43e06cb
После того, как я запустил скрипт, я наблюдал очень странную для меня картину: объём занятого на СХД места не уменьшался, а увеличивался, причём примерно 1 к 1 в зависимости от количества удалённых файлов. СХД на 100 TB, с занятыми 58 до старта скрипта в конце его работы была заполнена на 98 TB - то есть на объём удаляемых файлов. По завершению скрипта место очистилось - мгновенно объём занятого пространства уменьшился с 98 до 18 TB.
СХД представляет собой набор подключенных к аппаратному рейд-контроллеру дисков, собранные в RAID6.
Вопрос прост: почему наблюдается такое поведение при использовании Remove-Item и что было бы, если бы на СХД не хватило места?