Soft Deletion and Hard Deletion ?

“소프트 삭제” and “하드 삭제” ?

고객분께서 궁금해 하셨던 부분인데.. 한번쯤 정리하는 것이 좋을 것 같아서 blog site에 올립니다.

클라이언트 관점

Outlook 과 같은 클라이언트로 Exchange Mailbox에 직접 연결하였고 Folder 상의 아이템을 삭제하는 경우, 일반적인 상황에서 이 메시지는 지운 편지함(Deleted Item) 폴더로 이동됩니다.

그리고 이 지운 편지함 폴더 비우기를 실행하면 이 요청은 Exchange information Store로 전달됩니다. 필요에 따라서 메시지를 선택하고 SHIFT+DELETE를 누른 상태에서 삭제하면 강제로 삭제할 수 있습니다.

만약 클라이언트 프로파일이 Exchange Server Mailbox가 아닌 개인폴더 (.pst) 로 배달되도록 설정되었다면 Message는 지운 편지함으로 옮겨지는 대신 실제로는 사용자의 개인폴더로 복사되고 이후 받은 편지함에서 삭제됩니다.

영구적으로 지운 편지함 폴더로 먼저 이동하지 않고 항목을 제거할 수 있습니다. 이 절차는 "하드 삭제" 라고 하드 삭제 중 세 가지 예입니다.

· Microsoft Outlook 사용자가 메시지를 제거하려면 Shift + Delete를 누릅니다.

· 있는 인터넷 메시지 액세스 프로토콜 4 (IMAP4), 우체국 프로토콜 3 (POP3) 또는 다른 유형의 지운 편지함 폴더로 않습니다 먼저 메시지를 이동하는 않는 메시징 클라이언트 사용합니다.

· 오프라인 폴더 파일 (.ost) 과 오프라인 일하는 Outlook 사용자가 메시지를 받은 편지함 또는 다른 폴더를 제거하고 오프라인 폴더 파일 서버와 동기화되지 전에 지운 편지함 폴더를 비웁니다. 서버에 있는 폴더에서 항목의 하드 삭제를 생성합니다.

클라이언트 수준의 하드 삭제 후 복구할 수 있는 방법은 “지운 편지함 복구” 입니다.

clip_image001[6]

Information Store 관점

Information Store는 Message ID를 통해서 참조하는 특정 폴더의 메시지에 삭제 요청을 받았을때, Information Store는 이 메시지가 Soft Deleted(Logical Deletion) 또는 Hard Deleted(Physical Deletion) 되었는지 결정합니다. Message의 “하드 삭제”은 다음 항목들에 해당됩니다.

· 클라이언트가 “하드 삭제”을 요청

· 삭제 아이템 보존 기간이 0인 경우

· 사서함 저장소나 공용 폴더 저장소 상의 레지스트리가 “Force Hard Deletes” 로 설정된 경우

· Message를 PST 로 이동한 경우

· IMAP4 클라이언트 같이 Deleted item folder를 사용하지 않는 경우

· 삭제를 요청한 계정이 Gateway인 경우

· 삭제를 요청한 계정이 System 인 경우

기본적으로 Mailbox database 또는 Public Folder 수준에서 설정이 가능합니다.

clip_image002[6]

사용자별로 설정하게 되면 Mailbox Store 수준을 Override 합니다.

clip_image003[6]

Software Deletion

“소프트 삭제”은 위의 언급한 “하드 삭제”의 조건에 해당하지 않는 경우 수행됩니다.

메시지가 클라이언트에서 삭제되면 ptagMsgDeleted라는 flag가 설정됩니다. 이 값은 메시지가 삭제되었음을 표시합니다. 이와 함께 사서함과 폴더 상의 메시지 숫자는 업데이트 됩니다.

폴더에서 “소프트 삭제” 되었음을 알리는 MsgFolder Table 상의 항목에 Flag를 설정합니다.

이 시점에서 메시지는삭제된 아이템 복구에서 복구할 수 있습니다. 기본적으로 클라이언트는 이 값이 설정된 메시지를 표시하지 않습니다.

이 값이 표시된 메시지를 보기 위해서는 클라이언트의 Dumpster 기능을 활성화해야 합니다.

Dumpster 기능이 활성화되어 있지 않다면 메시지들은 다음 유지보수 프로세스가 진행될때 폴더에서 삭제됩니다. Outlook 2007 클라이언트는 기본적으로 Dumpster 기능이 활성화 되어 있고 Outlook 2003의 경우 지운 편지함에 대해서만 Dumpster 기능이 활성화 되어 있습니다.

Dumpster 기능이 활성화되어있다면 삭제된 항목 보존기간이 지난 메시지들만이 유지보수 프로세스에 의해 삭제됩니다. (1시간 간격으로 동작하는 Back Ground Cleanup)

이러한 메시지들은 스케쥴링 된 information store 유지보수 과정에서 각 폴더의 “소프트 삭제” 된 아이템에 대해서 “삭제된 항목 보존기간” 을 지난 메시지를 확인합니다. 이러한 메시지가 확인되면 이 메시지들에 대해서 “하드 삭제”을 진행합니다.

“하드 삭제”

메시지가 “하드 삭제” 되면 Message reference 는 즉시 MsgFolder Table에서 삭제됩니다.

(MsgFolder Table은 Folder Table과 Message Table의 목록을 mapping 하는 table 입니다.)

이 시점에서 “지운 편지함 복구”를 사용한다 할지라도 메시지들은 더 이상 사용할 수 없게 됩니다. Message에 대한 Reference count가 체크되고 이 값이 0으로 떨어지면 이는 어떠한 사서함에서도 이 메시지의 복사본을 사용하지 않는다는 의미가 됩니다. message table에서 제거될 수 있음을 표시하는 DeletedMessages Table에 목록이 생성됩니다.

다음번 Background cleanup process 동안에 , deletedMessages 테이블의 목록들은 점검되고 상응하는 messages table 항목은 삭제됩니다.

기본적으로 이 작업은 1시간 간격으로 진행되며 다음 레지스트리를 수정하여 조정할 수 있습니다. (기본 값은 60000 으로 설정되어 있습니다.)

· HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS \ParametersPublic\Background Cleanup (value in milliseconds)

· HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ ParametersPrivate\Background Cleanup (value in milliseconds)

Exchange 2000

clip_image004[6]

Exchange 2010 에서도 동일합니다.

clip_image005[5]

결론

지운 모든 아이템들은 기본적으로 지운 편지함으로 이동됩니다. 아웃룩과 같은 클라이언트에서 SHIFT + DELETE 한 경우 클라이언트 입장의 “하드 삭제”이 진행됩니다. 지운 편지함의 아이템을 지우면 역시 또 “하드 삭제” 됩니다.

지운 편지함 폴더에서 삭제한 item의 경우, “삭제된 아이템 복구”을 통해서 복구가 가능하고 지운 편지함 이외의 폴더들도 “삭제된 아이템 복구” 을 통해서 복구가 가능합니다.

그럼 “하드 삭제”을 했는데 왜 “삭제된 아이템 복구” 에 나타나는 걸까요 ? 이는 Outlook과 Exchange Information Store 수준의 “하드 삭제”에 차이가 있기 때문입니다.

Exchange Database 관점에서의 “하드 삭제”과 아웃룩과 같은 클라이언트 관점에서 SHIFT+DELETE는 동일하지 않습니다. SHIFT+DELETE 로 삭제한 경우에도 MsgFolderTable상에 여전히 메시지가 남아있게되고 “삭제된 아이템 복구” 를 통해서 복구할 수 있습니다.

Outlook의 Auto-Archiving이나 “지운 편지함 삭제” 역시 여전히 Soft Delete 입니다.

Outlook의 ““지운 편지함 복구””에서 복구할 수 있는 한 Soft Delete라 할 수 있습니다.

보존기간이 끝났거나 Soft Deleted Item이 “삭제된 아이템 복구” 에서 다시한번 삭제될 경우(Purged)

이 아이템에 대해서는 Hard-Deletion이 일어나게 되고 영구히 삭제됩니다. 이 경우 복구할 수 있는 방법은 Backup으로 부터 Restore 밖에 없습니다.

(Exchange information Store 입장에서 보면 “삭제된 아이템 복구”에서 다시 한번 삭제될 경우 Hard-Deletion이 됩니다.)

다시 한번 정리해보면,

Outlook에서 delete 명령으로 E-mail 아이템을 삭제할 수 있습니다. 이것은 일반적인 삭제에 해당합니다.

Delete 명령은 아이템을 “지운 편지함(Deleted Item)으로 보냅니다.

지운 편지함 비우기를 하면 더 이상 이들 아이템은 보이지 않고 Exchange informatin store 수준에서 soft-delete가 발생하게 됩니다.

아웃룩에서 Shift+Delete 명령을 사용하면 이 또한Exchange informatin store 수준에서soft-delete가 됩니다.

Shift+Delete 명령은 아이템을 “지운 편지함” 으로 보내지 않습니다. 아이템들은 눈에 보이지 않는 상태가 되지만 여전히 삭제된 폴더상에 남게 됩니다.

위에서 언급한 Shift+Delete 로 삭제한 아이템들과 “지운 편지함” 비우기를 통해 삭제된 아이템들은 설정된 보존 기간이 끝나기 전까지 Exchange Database 에서 사용가능합니다.

By shsong