Windows에서 TRIM이 비활성화된 경우 씬 디스크에 대한 디스크 유지 보수를 예약하는 방법

Summary: 대규모 데이터 세트를 자주 삭제하고 다시 생성하는 Windows 환경에서는 씬 디스크 드라이브에 이전 TRIM 또는 UNMAP 작업이 있을 수 있으며 TRIM("fsutil behavior set disabledeletenotify 1")을 비활성화해야 할 수 있습니다. 이 작업은 TRIM이 꺼져 있는 경우 스토리지 효율성을 유지하는 방법에 대한 질문으로 이어질 수 있습니다. ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

개요

Windows 환경에서 대용량 데이터 세트를 자주 삭제하고 다시 생성하는 경우(예: Back up to disk) 이전 삭제 작업으로 인해 UNMAP 배열의 명령. 동일한 디스크 공간을 다시 쓰는 경우 수신되는 쓰기가 UNMAPs 처리됩니다. UNMAPs 디스크 공간 요소를 어레이 측의 디스크 풀로 반환합니다.

이 스토리지 효율성 논리를 구동하는 운영 체제 메커니즘을 "TRIM"로 변경되었습니다. 만약 TRIM 가 활성 상태이고 파일 시스템에서 블록을 삭제하면 파일 시스템(NTFS)이 사용 가능한 공간에 대한 메타데이터를 생성하여 I/O 스택 아래로 전달합니다. I/O 스택의 디스크 수준에서 대상 디스크가 ATA에 연결되어 있는지 여부가 결정됩니다. 이 경우 ATA TRIM 명령이 물리적 디스크 개체로 전송됩니다. 디스크가 SCSI 디스크인 경우 TRIM SCSI UNMAP.

동일한 데이터 섹션을 삭제하고 다시 작성하는 경우 이 풀로 반환 메커니즘의 스토리지 효율성 측면이 제한됩니다. 이러한 상황에서는 TRIM 해당 프로덕션 작업의 기간 동안 NTFS 수준에서 활성화하거나 TRIM 모두 다른 시간에 수동으로 블록을 회수합니다.

결과적으로 디스크가 장기적으로 여전히 공간 효율적인지 어떻게 보장할 수 있습니까?

제한 사항

솔루션을 만들기 전에 고려해야 할 몇 가지 제한 사항이 있습니다.

1.

디바이스에서 다시 트리밍을 트리거하려면 일반적으로 /L 옵션과 함께 조각 모음 명령을 실행합니다. 다음을 사용하여 TRIM을 비활성화한 경우 "fsutil behavior set disabledeletenotify 1," 트리밍 또는 매핑 해제는 삭제 시에만 비활성화 되고 다시 트리밍이 예상대로 작동한다는 인상을 받을 수 있습니다. 그렇지 않습니다. 조각 모음의 retrim 작업은 빈 스파스 파일을 할당한 다음 FSCTL_MOVE_FILE 을 클릭하여 데이터를 이동합니다. 자세한 내용은 "Windows Internals 7", "Part II", p. 644 이하를 참조하세요. 결과 동작은 내부적으로 삭제 작업을 의미합니다. 불행히도, 만약 disabledeletenotify is "1"이면 retrim 명령이 여전히 성공합니다. 다음과 같은 결과가 발생하지 않습니다. unmaps을 클릭합니다.

따라서 스토리지를 회수하는 시퀀스에는 활성화하는 단계가 포함되어야 합니다 TRIM 조각 모음이 실행되기 전에.

2.

또한 사용자가 TRIM 시스템에서 전역적으로 활성화하고 조각 모음한 다음 다시 비활성화하면 명령이 프롬프트로 돌아가더라도 비활성화 프로세스가 불완전한 retrim 명령 실행과 충돌할 수 있습니다. Windows 2019에서 랩 테스트를 수행했을 때 설정하기 전에 몇 초 동안 기다려야 한다는 것을 알았습니다. disabledeletenotify 다시 "1"로. 우리는 이것이 상호 작용의 결과라고 믿습니다. defrag 명령 및 백그라운드의 옵티마이저 서비스.

3.

일정을 예약하는 경우 TRIM Drive Optimizer를 사용하는 경우 기본 탐색기 메뉴에는 예약된 작업이 필요합니다. "ScheduledDefrag" (/Microsoft/Windows/Defrag)를 참조하십시오. 작업을 수정하면 Drive Optimizer가 이 사실을 감지하고 계속하기 전에 기본값을 복원하도록 요청합니다. 작업을 비활성화하는 경우에도 조각 모음 명령을 수동으로 실행할 수 있지만 예약할 수는 없습니다.

4.

이 "ScheduledDefrag" 작업은 시스템 유지 관리에서도 호출됩니다. (Control Panel\All Control Panel Items\Security and Maintenance\Automatic Maintenance).

5.

비활성화하면 TRIMTthe UNMAP IO 스택의 하위 계층에 대한 명령 흐름이 즉시 중지됩니다. 이는 예상된 동작입니다. 시간이 지남에 따라 할당된 공간과 사용된 공간 차이가 너무 커지는 것을 관찰하면 (1) TRIM/UNMAP 스파스 파일 처리에서 더 많은 시간을 보내거나 (2) 개입을 더 자주 실행합니다.

해결책

따라서 이러한 시스템 기본 설정 및 작업을 그대로 두고 작업 스케줄러에서 다음과 같은 새 작업을 만드는 것이 좋습니다 .

  1. 활성화 TRIM ("fsutil behavior set disabledeletenotify 0")
  2. 실행 defrag /l against all drives ("defrag /C /L")
  3. 결과 명령이 어레이에 제출될 때까지 대기합니다. ("timeout /t 60")
  4. 비활성화 TRIM again ("fsutil behavior set disabledeletenotify 1")

참고

3단계의 시간 제한 값은 랩 테스트의 보간입니다. 이것을 시작점으로 사용하십시오. 어레이 측의 할당된 용량 값과 파일 시스템에서 보고한 사용된 용량 값 간에 차이가 발생하는 경우 300초(5분) 및 그 이상(3600, 1시간)과 같이 더 큰 값을 사용해야 할 수 있습니다. 또는 작업을 더 자주 실행해야 할 수도 있습니다. 즉, 매주 대신 매일. 이러한 불일치가 발생할 수 있는 이유는 위의 제한 사항 (5)에 설명되어 있습니다.
 

XML 태스크 템플릿

다음에서는 기본으로 사용할 작업 스케줄러로 가져올 수 있는 템플릿을 제공합니다. 아래 xml 코드를 복사하여 파일에 붙여 넣고 구성하려는 서버 시스템에 도달 할 수있는 곳에 파일을 배치 한 다음 작업 가져 오기 작업을 사용하여 작업을 가져옵니다. 아래 작업 템플릿을 DellSanDiskMaintenance. 매주 토요일 20:00h(오후 8시)에 위의 네 단계를 실행하며 다음과 같이 스케줄러의 루트에 배치됩니다.

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.6" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Source>Dell Technologies</Source>
    <Date>2023-07-07T09:21:50.4883878</Date>
    <Author>Dell Technologies</Author>
    <Description>This task is an example of how to optimize thin SAN drives, if TRIM is globally disabled on the system.</Description>
    <URI>\DellSanDiskMaintenance</URI>
    <SecurityDescriptor>D:AI(A;;FA;;;BA)(A;;FA;;;SY)(A;;FRFX;;;LS)(A;;FR;;;AU)</SecurityDescriptor>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2023-07-01T20:00:00</StartBoundary>
      <ExecutionTimeLimit>PT2H</ExecutionTimeLimit>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Saturday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="LocalSystem">
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>false</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
    <MaintenanceSettings>
      <Period>P1D</Period>
      <Deadline>P4D</Deadline>
      <Exclusive>false</Exclusive>
    </MaintenanceSettings>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT4H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="LocalSystem">
    <Exec>
      <Command>%windir%\system32\fsutil.exe</Command>
      <Arguments>behavior set disabledeletenotify 0</Arguments>
    </Exec>
    <Exec>
      <Command>%windir%\system32\defrag.exe</Command>
      <Arguments>/C /L /U</Arguments>
    </Exec>
    <Exec>
      <Command>timeout</Command>
      <Arguments>/t 60</Arguments>
    </Exec>
    <Exec>
      <Command>%windir%\system32\fsutil.exe</Command>
      <Arguments>behavior set disabledeletenotify 1</Arguments>
    </Exec>
  </Actions>
</Task>
 

Affected Products

PowerMax
Article Properties
Article Number: 000215628
Article Type: How To
Last Modified: 18 Dec 2025
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.