@IlliumIv

Почему Remove-Item (PowerShell) в цикле съедает свободное место, эквивалентное объёму удаляемых файлов?

Добрый день, господа.

Мне потребовалось удалить большое количество файлов по заранее созданному списку, и для решения задачи я написал простой скрипт 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 и что было бы, если бы на СХД не хватило места?
  • Вопрос задан
  • 185 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MaxKozlov Куратор тега PowerShell
Не замечал раньше, но
Remove-Item [-Path] <String[]>
поэтому ему можно сразу весь список передать, а не крутить в цикле
Ответ написан
@azarij
В меру опытный никто
а если стирать файлы не через повершел? цмд'шным del например, эксплорером или тотал командером каким.
я думаю дело не в remove-item, а в том как подключена СХД.
как она подключена? напрямую (контроллер в этом же сервере, блочно - iscsi/fc, СМБ шара)?
из какой ОС запускался скрипт?
тома на СХД толстые или тонкие? Если это применимо в данном случае.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы