KR102545166B1 - 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법 - Google Patents

파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법 Download PDF

Info

Publication number
KR102545166B1
KR102545166B1 KR1020160094830A KR20160094830A KR102545166B1 KR 102545166 B1 KR102545166 B1 KR 102545166B1 KR 1020160094830 A KR1020160094830 A KR 1020160094830A KR 20160094830 A KR20160094830 A KR 20160094830A KR 102545166 B1 KR102545166 B1 KR 102545166B1
Authority
KR
South Korea
Prior art keywords
file
data
host
storage system
command
Prior art date
Application number
KR1020160094830A
Other languages
English (en)
Other versions
KR20180012061A (ko
Inventor
박진환
김찬솔
정명진
김경호
김지수
강필성
유채원
이소정
최봉준
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160094830A priority Critical patent/KR102545166B1/ko
Priority to US15/483,365 priority patent/US11106630B2/en
Priority to CN201710259352.2A priority patent/CN107657185A/zh
Priority to DE102017111883.7A priority patent/DE102017111883A1/de
Priority to TW106121606A priority patent/TW201804355A/zh
Publication of KR20180012061A publication Critical patent/KR20180012061A/ko
Priority to US17/376,225 priority patent/US11657022B2/en
Application granted granted Critical
Publication of KR102545166B1 publication Critical patent/KR102545166B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 호스트의 동작 방법은, 스토리지 시스템에 저장된 제1 파일에 대한 안전 삭제 요청을 수신하는 단계와, 상기 제1 파일의 데이터를 무효화시키기 위한 무효화 명령을 상기 스토리지 시스템으로 제공하는 단계와, 상기 스토리지 시스템 내의 무효 데이터에 대한 소거 명령을 상기 스토리지 시스템으로 제공하는 단계 및 상기 소거 명령에 의해 삭제된 제1 파일에 대해 운영 체제 상에서의 삭제 동작을 수행하는 단계를 구비하는 것을 특징으로 한다.

Description

파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법{Host and Storage System securely deleting files and Operating Method of Host}
본 개시의 기술적 사상은 호스트 및 스토리지 시스템에 관한 것으로서, 상세하게는 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있다. 최근 SSD 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 시스템이 널리 사용되고 있으며, 스토리지 시스템은 많은 양의 데이터를 저장하거나 이동시키는데 유용하게 사용되고 있다.
스토리지 시스템이 다양한 분야에서 널리 이용됨에 따라, 스토리지 시스템에 저장된 데이터의 보안성이 중요한 문제로 대두된다. 특히, 스토리지 시스템이 채용된 컴퓨팅 시스템에서, 사용자가 정보를 삭제하더라도 해당 정보가 타인에 의해 복구됨에 따라 개인 정보, 기밀 문서나 온라인 인증서 등의 중요 정보가 노출될 수 있는 문제가 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 사용자가 삭제를 원하는 정보를 안전하게 삭제할 수 있는 호스트, 스토리지 시스템 및 호스트의 동작방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 호스트의 동작 방법은, 스토리지 시스템에 저장된 제1 파일에 대한 안전 삭제 요청을 수신하는 단계와, 상기 제1 파일의 데이터를 무효화시키기 위한 무효화 명령을 상기 스토리지 시스템으로 제공하는 단계와, 상기 스토리지 시스템 내의 무효 데이터에 대한 소거 명령을 상기 스토리지 시스템으로 제공하는 단계 및 상기 소거 명령에 의해 삭제된 제1 파일에 대해 운영 체제 상에서의 삭제 동작을 수행하는 단계를 구비하는 것을 특징으로 한다.
또한, 본 개시의 기술적 사상의 다른 일 측면에 따른 호스트의 동작 방법은, 안전 삭제 기능을 지원하는 안전 삭제 모듈을 통해 제1 파일의 삭제 요청을 수신하는 단계와, 상기 제1 파일의 삭제 요청에 따라, 호스트에 설치되는 운영 체제와는 독립하게 상기 제1 파일에 대한 언맵 명령 또는 오버라이트 명령을 스토리지 시스템으로 제공하는 단계 및 상기 언맵 명령 또는 오버라이트 명령에 의해 무효화된 데이터를 소거하기 위한 소거 명령을 상기 스토리지 시스템으로 제공하는 단계를 구비하고, 상기 소거 명령은, 상기 운영 체제에 의한 상기 제1 파일의 삭제 처리가 시작되기 전에 상기 스토리지 시스템으로 제공되는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 스토리지 시스템을 억세스하는 호스트는, 안전 삭제에 관련된 프로그램들을 포함하는 안전 삭제 모듈을 저장하는 메모리 및 상기 메모리에 연결되어 상기 메모리에 저장된 프로그램들을 실행하며, 제1 파일에 대한 안전 삭제 요청에 응답하여, 운영 체제 상에서 상기 제1 파일에 대한 삭제 처리가 시작되기 전에 상기 제1 파일의 데이터를 무효화시키기 위한 무효화 명령 및 무효화된 데이터를 소거하기 위한 소거 명령을 상기 스토리지 시스템으로 제공함으로써 상기 제1 파일이 삭제되도록 제어하는 프로세서를 구비하는 것을 특징으로 한다.
한편, 본 개시의 기술적 사상의 일측면에 따른 호스트와 통신하는 스토리지 시스템은, 하나 이상의 파일들의 데이터 및 메타 데이터를 저장하는 메모리 장치 및 상기 메모리 장치의 데이터 억세스 동작을 제어하는 컨트롤러를 구비하고, 상기 호스트의 제어에 따라 제1 파일의 데이터에 대한 무효화 동작 및 상기 제1 파일의 무효 데이터에 대한 소거 동작을 포함하는 제1 삭제 동작을 수행하고, 상기 제1 삭제 동작에 의해 상기 제1 파일의 소거 동작이 완료된 후 상기 호스트의 제어에 따라 상기 제1 파일에 대한 제2 삭제 동작을 수행하는 것을 특징으로 한다.
본 발명의 기술적 사상의 호스트, 스토리지 시스템 및 호스트의 동작방법에 따르면, 운영 체제(OS) 상에서의 파일 삭제와 독립적으로 안전 삭제 모듈에 의해 파일의 안전 삭제 동작이 수행되므로, 사용자가 원하는 시점에 복구가 불가능한 수준으로 파일을 삭제할 수 있으며, 이에 따라 정보의 보안성을 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 호스트, 스토리지 시스템 및 호스트의 동작방법에 따르면, 파일의 파일명 등의 메타 데이터 또한 안전하게 삭제할 수 있으므로, 정보의 보안성을 향상할 수 있는 효과가 있다.
도 1은 본 발명의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 도 1의 컴퓨팅 시스템(10)의 구체적인 구현 예를 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 안전 삭제 모듈의 기능이 소프트웨어적으로 구현되는 예를 나타내는 블록도이다.
도 4는 본 발명의 예시적인 실시예에 따른 호스트의 동작방법을 나타내는 플로우차트이다.
도 5는 변형 가능한 실시예에 따른 호스트의 동작방법을 나타내는 플로우차트이다.
도 6 및 도 7은 언맵 명령에 의해 데이터가 무효화된 경우와 오버라이트 명령에 의해 데이터가 무효화되는 예를 나타내는 블록도이다.
도 8은 스토리지 시스템에서 무효한 데이터가 소거되는 예를 나타내는 블록도이다.
도 9는 본 발명의 변형 가능한 실시예에 따른 호스트의 동작방법을 나타내는 플로우차트이다.
도 10 및 도 11은 파일 삭제 동작에 파일명을 포함하는 메타 데이터의 변경 동작이 포함되는 예를 나타내는 도면이다.
도 12는 본 발명의 예시적인 실시예에 따른 컴퓨팅 시스템에서, 파일 안전 삭제에 관련된 호스트와 스토리지 시스템 각각의 동작을 나타내는 개념도이다.
도 13a,b 스토리지 시스템에서 무효 데이터에 대한 소거 동작의 일 예를 나타내는 도면이다.
도 14는 본 발명의 변형 가능한 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 15는 다양한 종류의 스토리지 시스템이 컴퓨팅 시스템에 적용된 예를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 1을 참조하면, 컴퓨팅 시스템(10)은 호스트(100) 및 스토리지 시스템(200)을 포함할 수 있다. 또한, 스토리지 시스템(200)은 컨트롤러(210) 및 메모리 장치(220)를 포함할 수 있다. 또한, 본 발명의 예시적인 실시예에 따라, 호스트(100)는 안전 삭제 모듈(Secure Deleting Module, SDM)을 포함할 수 있다. 상기 안전 삭제 모듈(SDM, 110)은 다양한 형태로 구현되어 호스트(100)에 구비될 수 있다. 예컨대, 안전 삭제 모듈(SDM, 110)은 파일의 삭제에 관련된 각종 처리를 수행하기 위한 컨트롤 회로(control circuit) 등과 같은 하드웨어(HW)로 구현될 수 있다. 또는, 안전 삭제 모듈(SDM, 110)은 프로그램을 포함하는 소프트웨어(SW)로 구현될 수 있으며, 프로세싱 유닛이 동작 메모리에 로딩된 안전 삭제 모듈(SDM, 110)을 실행함에 의해 파일의 삭제에 관련된 각종 처리를 수행할 수 있다. 또는, 상기 안전 삭제 모듈(SDM, 110)은 하드웨어(HW)와 소프트웨어(SW)의 조합으로 구현될 수 있다.
일 실시예에 따라, 안전 삭제 모듈(SDM, 110)은 소프트웨어(SW)로 구현되고, 안전 삭제 모듈(SDM, 110)은 컴퓨팅 시스템(10) 내에서 다양한 방식에 따라 저장될 수 있다. 예컨대, 안전 삭제 모듈(SDM, 110)은 스토리지 시스템(200) 내에 불휘발성하게 저장되고, 안전 삭제 모듈(SDM, 110)이 스토리지 시스템(200)으로부터 호스트(100)로 제공될 수 있다. 이 때, 스토리지 시스템(200)은 안전 삭제 모듈(SDM, 110)을 저장하는 저장 매체에 해당할 수 있다.
다른 예로서, 안전 삭제 모듈(SDM, 110)은 컴퓨팅 시스템(10) 내에서 호스트(100) 외부의 다른 저장 수단에 불휘발성하게 저장되고, 컴퓨팅 시스템(10)에 전원이 인가되면 상기 다른 저장 수단으로부터 안전 삭제 모듈(SDM, 110)이 호스트(100)로 제공될 수 있다. 또는, 호스트(100) 내부에 저장 수단이 구비되고, 안전 삭제 모듈(SDM, 110)은 상기 호스트(100) 내부의 저장 수단에 불휘발성하게 저장될 수 있다.
호스트(100)는 스토리지 시스템(200)으로 데이터의 억세스 요청을 제공할 수 있다. 일 예로서, 호스트(100)는 스토리지 시스템(200)으로 데이터의 기록 또는 독출 요청을 제공하고, 스토리지 시스템(200)은 호스트(100)로부터의 억세스 요청에 따라 데이터를 메모리 장치(200)에 기록하거나, 또는 메모리 장치(200)로부터 데이터를 독출하여 호스트(100)로 제공할 수 있다. 또한, 호스트(100)로부터의 데이터 소거 요청에 따라, 스토리지 시스템(200)은 호스트(100)로부터 지시되는 영역의 데이터에 대한 소거 동작을 수행할 수 있다.
호스트(100)는 다양한 인터페이스를 통하여 스토리지 시스템(200)과 통신할 수 있다. 호스트(100)는 스토리지 시스템(200)에 대한 데이터 억세스를 수행할 수 있는 다양한 종류의 장치를 포함할 수 있다. 예컨대, 호스트(100)는 플래시 메모리 기반의 스토리지 시스템(200)과 통신하는 어플리케이션 프로세서(Application Processor, AP)일 수 있다. 일 실시예에 따라, 호스트(100)는 USB(Universal Serial Bus), MMC(MultiMediaCard), PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스를 통해 스토리지 시스템(200)과 통신할 수 있다.
스토리지 시스템(200)은 하나 이상의 저장 매체들을 포함할 수 있다. 일 예로서, 스토리지 시스템(200)은 하나 이상의 솔리드 스테이트 드라이브(SSD) 등을 포함할 수 있다. 스토리지 시스템(200)이 솔리드 스테이트 드라이브(SSD)를 포함하는 경우, 스토리지 시스템(200)은 다수 개의 메모리 칩들을 포함할 수 있다. 일 예로서, 스토리지 시스템(200)은 데이터를 불휘발성하게 저장하는 다수 개의 플래시 메모리 칩들(예컨대, NAND 메모리 칩들)을 포함할 수 있다.
또는, 스토리지 시스템(200)은 하나의 플래시 메모리 칩에 해당할 수 있다. 또는, 스토리지 시스템(200)은 하나 이상의 플래시 메모리 칩들을 포함하는 메모리 카드에 해당할 수 있다.
스토리지 시스템(200)이 플래시 메모리 칩을 포함할 때, 상기 플래시 메모리 칩은 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 상기 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역을 가지는 메모리 셀들의 어레이들, 또는 상기 메모리 셀들의 동작과 관련된 회로로서 상기 기판상에 또는 상기 기판 내에 형성된 회로의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 "모놀리식”은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다.
본 발명의 기술적 사상에 의한 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 Vertical NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다.
미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
한편, 본 발명의 일 실시예에 따라, 안전 삭제 모듈(SDM, 110)은 스토리지 시스템(200)을 사용하는 사용자가 선택한 파일을 복구가 불가능한 수준으로 안전하게 삭제하는 기능을 지원한다. 일 예로서, 안전 삭제 모듈(SDM, 110)은 호스트(100) 내에 설치되어 프로세서(미도시)에 의해 실행되는 소프트웨어 모듈일 수 있다. 안전 삭제 모듈(SDM, 110)은 별개의 호스트 어플리케이션으로 구현되어 호스트(100)에 설치될 수 있다. 또는, 호스트(100)는 스토리지 시스템(200)과의 인터페이스를 위한 장치 드라이버(미도시)를 구비할 수 있으며, 안전 삭제 모듈(SDM, 110)은 장치 드라이버 내에 구현되어 파일의 삭제에 관련된 각종 기능들을 수행할 수 있다.
사용자는 호스트(100) 내에 설치된 안전 삭제 모듈(SDM, 110)을 통해 파일을 선택하고, 선택된 파일의 삭제를 요청할 수 있다. 일 예로서, 안전 삭제 모듈(SDM, 110)이 호스트 어플리케이션 형태로 구현되는 경우, 사용자는 호스트 어플리케이션을 실행하고 안전 삭제를 필요로 하는 파일(예컨대, 제1 파일)을 선택할 수 있다. 사용자로부터 제1 파일이 선택되면, 호스트(100)의 운영 체제(Operating System, OS) 상에서 해당 파일을 삭제하기 위한 동작이 수행되기 전에, 안전 삭제 모듈(SDM, 110)은 파일을 안전하게 삭제하기 위한 적어도 하나의 처리 동작을 먼저 수행할 수 있다.
안전 삭제 모듈(SDM, 110)은 제1 파일의 데이터(예컨대, 유저 데이터)를 무효화하기 위한 처리 동작을 수행할 수 있다. 일 예로서, 안전 삭제 모듈(SDM, 110)은 제1 파일이 위치하는 영역의 정보를 획득하고, 상기 획득된 영역 정보에 대응하는 데이터를 무효화하기 위하여 무효화 명령을 출력할 수 있다. 예컨대, 호스트(100)는 스토리지 시스템(200)에 저장되는 다수의 파일들의 논리적인 저장 위치를 나타내는 논리 주소를 관리할 수 있으며, 호스트(100) 내에서 획득된 제1 파일에 대응하는 논리 주소에 기반하여 데이터에 대한 무효화 처리를 수행할 수 있다. 예컨대, 안전 삭제 모듈(SDM, 110)은 획득된 논리 주소에 대응하는 영역에 대한 언맵 명령(Unmap)을 출력하거나, 또는 획득된 논리 주소에 대응하는 영역에 임의의 데이터를 오버라이트하기 위한 오버라이트 명령(Overwrite)을 출력할 수 있다.
상기와 같은 안전 삭제 모듈(SDM, 110)로부터의 명령에 따라, 스토리지 시스템(200)은 상기 논리 주소에 대응하는 영역에 대해 언맵 또는 오버라이트 동작을 수행한다. 이에 따라, 상기 선택된 파일(예컨대, 제1 파일)의 데이터가 더 이상 유효하지 않게 되며, 안전 삭제 모듈(SDM, 110)은 유효하지 않은(또는, 무효한) 데이터에 대한 소거 명령(Del_Invalid)을 출력함으로써 상기 제1 파일의 데이터가 스토리지 시스템(200) 내부에 남아있지 않도록 처리할 수 있다.
상기와 같은 안전 삭제 모듈(SDM, 110)에 의한 파일 삭제 동작이 완료되고 나면, 호스트(100) 내의 운영 체제(OS) 상에서 상기 제1 파일에 대한 삭제 동작이 수행될 수 있다. 일 예로서, 안전 삭제 모듈(SDM, 110)은 제1 파일에 대한 삭제 동작이 완료되면 이를 나타내는 정보를 호스트(100) 내의 운영 체제(OS)로 제공할 수 있다. 또는, 안전 삭제 모듈(SDM, 110)은 제1 파일에 대한 삭제 동작이 완료된 후, 사용자로부터의 제1 파일에 대한 삭제 요청을 호스트(100) 내의 운영 체제(OS)로 전달할 수 있다.
호스트(100)는 운영 체제(OS) 상에서 제1 파일에 대한 삭제 동작을 재차 수행할 수 있다. 일 예로서, 호스트(100) 내에는 파일들을 스토리지 시스템(200)에 저장하기 위한 각종 관리 동작을 수행하는 파일 시스템(미도시)이 구비될 수 있으며, 호스트(100)는 파일 시스템을 통해 다수의 파일들의 데이터(또는, 유저 데이터)를 관리할 수 있다. 또한, 파일 시스템은 각각의 파일에 대한 메타 데이터를 생성할 수 있으며, 상기 데이터와 함께 메타 데이터를 스토리지 시스템(200)에 저장할 수 있다.
운영 체제(OS) 상에서 제1 파일에 대한 삭제 동작은 다양한 종류의 동작들을 포함할 수 있다. 일 예로서, 제1 파일의 메타 데이터에 포함되는 소정의 플래그가 파일 삭제 상태를 나타내는 로직 값으로 설정될 수 있다. 또한, 운영 체제(OS) 상에서 제1 파일에 대한 삭제 동작은 제1 파일이 위치하는 영역에 대한 언맵 동작을 포함할 수 있다. 또한, 운영 체제(OS) 상에서 제1 파일에 대한 삭제 동작은 상기 언맵 동작을 통해 무효화 처리된 데이터에 대한 소거 동작을 더 포함할 수도 있다. 운영 체제(OS) 상에서의 파일 삭제 과정에서, 전술한 무효 데이터에 대한 소거 동작은 스토리지 시스템(200) 내에서 자체적으로 처리될 수 있다.
전술한 본 발명의 실시예에 따르면, 사용자로부터 파일의 삭제가 요청되면, 운영 체제(OS) 상에서 파일을 삭제하기 위한 동작이 수행되기 전에 안전 삭제 모듈(SDM, 110)이 운영 체제(OS)와는 독립적으로 파일을 안전하게 삭제하기 위한 처리를 수행할 수 있다. 즉, 운영 체제(OS)의 판단 하에서 파일을 삭제하는 경우에는, 실제 언맵 동작이 수행되기 전이나 무효한 데이터에 대한 소거 동작이 실제 수행되기 전에는 상기 삭제될 파일의 데이터가 스토리지 시스템(200) 내에 남아있는 시점이 존재할 수 있다. 또한, 운영 체제(OS)의 판단 하에서 삭제될 파일의 데이터가 무효화 처리가 수행되더라도, 스토리지 시스템(200) 내에서 무효 데이터가 실질적으로 소거되기 전까지는 파일의 데이터가 복구될 수 있다. 그러나, 전술한 본 발명의 실시예에 따르면, 운영 체제(OS)와는 독립적으로 안전 삭제 모듈(SDM, 110)이 파일을 삭제하기 위한 일련의 동작을 수행하므로, 사용자가 원하는 시점에 파일이 안전하게 삭제될 수 있다.
도 2는 도 1의 컴퓨팅 시스템(10)의 구체적인 구현 예를 나타내는 블록도이다.
도 2를 참조하면, 호스트(100)에는 운영 체제(OS)가 설치되고, 운영 체제(OS)에 의해 호스트(100)의 전반적인 동작들이 제어될 수 있다. 또한, 호스트(100)는 호스트 어플리케이션(110), 파일 시스템(120) 및 장치 드라이버(130)를 포함할 수 있다. 호스트 어플리케이션(110)은 특정 목적에 의해 호스트(100)에 설치되어 스토리지 시스템(200)에 접근할 수 있는 다양한 종류의 어플리케이션에 해당할 수 있다. 또한, 장치 드라이버(130)는 운영 체제(OS)나 호스트 어플리케이션(110)으로부터의 요청들을 스토리지 시스템(200)에 대응하는 메시지로 변환함으로써, 스토리지 시스템(200)에 대한 데이터 억세스를 제어하는 기능을 수행할 수 있다.
본 발명의 일 실시예에 따라, 안전 삭제 모듈(SDM)은 호스트 어플리케이션(110) 형태로 구현되어 호스트(100)에 설치될 수 있다. 또는, 안전 삭제 모듈(SDM)은 장치 드라이버(130) 내에 소프트웨어적으로 구현되고, 운영 체제(OS)를 통한 특정 요청에 응답하여 파일 안전 삭제에 관련된 기능을 실행할 수 있다. 이하의 설명에서는, 안전 삭제 모듈(SDM)이 호스트 어플리케이션(110) 형태로 구현됨에 따라, 호스트 어플리케이션(110)이 안전 삭제 모듈(SDM)에 상응하는 것으로 정의된다.
한편, 파일 시스템(120)은 호스트(100)와 스토리지 시스템(200)을 포함하는 컴퓨팅 시스템(10)에서 파일을 관리하는 시스템에 해당할 수 있다. 일 실시예에 따라, 파일 시스템(120)은 파일을 체계적으로 정리할 수 있게 지원하는 운영 체제(OS)의 일부에 해당하거나 또는 부가 프로그램을 의미할 수 있다. 또는, 파일 시스템(120)은 스토리지 시스템(200)에 저장된 파일들 및 파일들의 구조를 포함하는 의미로 이용될 수 있다. 호스트(100)는 다양한 종류의 운영 체제(OS) 및 파일 시스템(120)에 따라 스토리지 시스템(200)을 억세스할 수 있다. 일 예로서, Windows 계열의 운영 체제에서의 FAT(File Allocation Table) 또는 NTFS(New Technology File System) 등의 파일 시스템이나, Unix/Linux 계열의 운영 체제에서의 UFS(Unix File System), EXT2(Extended 2), EXT3(Extended 3), JFS(journaled file system) 등의 다양한 파일 시스템이 이용될 수 있다.
한편, 스토리지 시스템(200)은 하나 이상의 플래시 메모리 칩들을 포함할 수 있으며, 스토리지 시스템(200)은 플래시 변환 계층(flash translation layer(211), 이하 FTL로 지칭됨)과 저장 영역(221)을 포함할 수 있다. FTL(211)은 도 1에 도시된 실시예에서 컨트롤러(210)에 구비되는 구성일 수 있다. FTL(211)은 스토리지 시스템(200)의 기록, 독출 및 소거 동작 등에 대한 관리를 수행하는 시스템 소프트웨어(또는, 펌웨어)를 포함하며, 스토리지 시스템(200) 내에 구비되는 동작 메모리(미도시)에 로딩되어 프로세싱 유닛에 의해 실행될 수 있다. 일 실시예에 따라, FTL(211)은 논리 주소를 물리 주소로 변환하기 위한 맵핑 정보를 포함할 수 있으며, 호스트(100) 측에서의 파일 위치를 나타내는 논리 주소를 호스트(100)로부터 수신하고, 수신된 논리 주소를 데이터가 실제 저장된 물리적 위치를 나타내는 물리 주소로 변환할 수 있다.
한편, 파일 시스템(120)은 파일을 생성하기 위해 사용자로부터 제공된 데이터(예컨대, 유저 데이터)로부터 메타 데이터를 생성할 수 있다. 일 예로서, 메타 데이터는 파일을 관리하기 위한 각종 정보로서, FAT 테이블, 디렉토리 엔트리(Directory Entry), 복구를 위한 로그 정보(Log information) 등과 같은 정보를 포함할 수 있다. 일 실시예에 따라, 파일 시스템(120)은 클러스터 등과 같은 소정의 단위로 파일을 관리할 수 있다.
스토리지 시스템(200)의 저장 영역(221)은, 메타 데이터를 저장하는 메타 영역(Meta Region)과 상기 유저 데이터를 저장하는 유저 영역(User Region)을 포함할 수 있다. 일 예로서, 파일 시스템(120)과 FTL(211)의 동작에 기반하여, 제1 파일의 유저 데이터는 유저 영역(User Region)에 저장되고, 제1 파일의 메타 데이터는 메타 영역(Meta Region)에 저장될 수 있다. 파일 시스템(120)은 유저 영역(User Region)에 저장된 제1 파일의 유저 데이터의 논리 주소를 관리할 수 있으며, 제1 파일의 유저 데이터의 논리 주소는 메타 데이터의 일부로서 메타 영역(Meta Region)에 저장될 수 있다.
일 실시예에 따라, 파일을 삭제하고자 하는 사용자는 삭제 요청과 함께 삭제될 파일의 정보를 호스트 어플리케이션(110)으로 제공할 수 있다. 호스트 어플리케이션(110)은 호스트(100)의 운영 체제(OS) 상에서 파일 삭제를 위한 처리가 진행되기 전에, 상기 선택된 파일의 안전한 삭제를 위하여 하나 이상의 처리 동작을 운영 체제(OS)와는 독립적으로 수행할 수 있다. 일 실시예에 따라, 호스트 어플리케이션(110)은 언맵 명령 및/또는 오버라이트 명령을 출력함으로써 상기 파일의 유저 데이터를 무효화시킬 수 있으며, 또한 호스트 어플리케이션(110)이 소거 명령을 출력함에 따라 스토리지 시스템(200) 내에서 무효 데이터들이 소거될 수 있다.
일 실시예에 따라, 호스트 어플리케이션(110)은 삭제될 파일의 유저 데이터의 논리적 저장 위치를 나타내는 논리 주소와 함께 언맵 명령을 스토리지 시스템(200)으로 제공할 수 있다. 일 실시예에 따라, 상기 언맵 명령 및 논리 주소는 파일 시스템(120) 및 장치 드라이버(130)를 통해 스토리지 시스템(200)으로 제공될 수 있다. 스토리지 시스템(200)은 수신된 논리 주소와 이에 대응하는 물리 주소의 맵핑 관계를 해제함으로써 상기 파일의 유저 데이터를 무효화시킬 수 있다.
또는, 일 실시예에 따라, 호스트 어플리케이션(110)은 삭제될 파일의 유저 데이터의 논리적 저장 위치를 나타내는 논리 주소와 함께 오버라이트 명령을 스토리지 시스템(200)으로 제공할 수 있다. 일 실시예에 따라, 상기 오버라이트 명령에 의해 유저 데이터에 임의의 데이터가 오버라이트될 수 있으며, 상기 임의의 데이터는 호스트(100)로부터 스토리지 시스템(200)으로 제공될 수 있다. 스토리지 시스템(200)은 수신된 논리 주소에 맵핑된 제1 물리 주소에 대응하는 영역으로부터 데이터를 독출하고, 독출된 데이터에 임의의 데이터를 오버라이트할 수 있다. 또한, 상기 오버라이트된 데이터는 제2 물리 주소에 대응하는 영역에 저장될 수 있다. 이에 따라, 제1 논리 주소는 제2 물리 주소에 맵핑되는 것으로 맵핑 정보가 변경될 수 있으며, 기존에 제1 물리 주소에 저장된 데이터는 무효화될 수 있다.
또는, 일 실시예에 따라, 일부 파일의 유저 데이터는 별도의 논리적 어드레스가 할당됨이 없이 메타 데이터와 함께 관리될 수 있다. 일 예로서, 특정 파일에서 유저 데이터가 클러스터 등의 저장 단위보다 작은 사이즈를 갖는 경우, 파일 시스템(120)은 상기 특정 파일의 유저 데이터에 대해 별도의 논리 주소를 할당함이 없이 메타 데이터가 저장되는 영역에 유저 데이터를 함께 저장할 수 있다. 이 경우, 상기 특정 파일의 유저 데이터를 무효화시키기 위하여, 호스트 어플리케이션(110)은 상기 특정 파일의 유저 데이터에 대해 임의의 데이터를 오버라이트하기 위한 명령을 파일 시스템(120)을 통해 스토리지 시스템(200)으로 제공할 수 있다. 이 때, 파일 시스템(120)은 상기 특정 파일의 유저 데이터가 위치한 영역을 판단할 수 있으므로, 파일 시스템(120)을 통해 상기 특정 파일의 유저 데이터가 무효화될 수 있다.
일 실시예에 따라, 호스트 어플리케이션(110)은 특정 조건에 기반하여 전술한 언맵 명령 및 오버라이트 명령을 선택적으로 출력할 수 있다. 일 예로서, 호스트 어플리케이션(110)이 파일 시스템(120)으로부터 파일의 영역 정보(예컨대, 파일이 위치하는 논리 주소)를 획득할 수 있는 경우, 호스트 어플리케이션(110)은 상기 논리 주소에 대응하는 영역에 대한 언맵 명령을 스토리지 시스템(200)으로 제공할 수 있다. 반면에, 호스트 어플리케이션(110)이 파일 시스템(120)으로부터 파일이 위치하는 논리 주소를 획득할 수 없는 경우, 호스트 어플리케이션(110)은 유저 데이터에 대한 오버라이트 명령을 스토리지 시스템(200)으로 제공할 수 있다.
한편, 전술한 호스트 어플리케이션(110)의 동작을 통해, 삭제를 원하는 파일의 유저 데이터가 무효화될 수 있으며, 호스트 어플리케이션(110)은 무효화된 유저 데이터에 대한 소거 명령을 스토리지 시스템(200)으로 제공할 수 있다. 일 실시예에 따라, 스토리지 시스템(200)은 호스트 어플리케이션(110)으로부터의 소거 명령에 응답하여 상기 선택된 파일에 관련된 무효 데이터를 소거할 수 있다. 또는, 변형 가능한 실시예에 따라, 스토리지 시스템(200)은 호스트 어플리케이션(110)으로부터의 소거 명령에 응답하여 스토리지 시스템(200) 내에 존재하는 다수의 파일들의 무효 데이터를 소거할 수 있으며, 또는 스토리지 시스템(200) 내에 존재하는 모든 무효 데이터를 소거할 수 있다.
전술한 실시예에 따라 호스트 어플리케이션(110)에 의해 파일 안전 삭제를 위한 처리 동작이 완료되면, 호스트 어플리케이션(110)은 호스트(100)의 운영 체제(OS)로 사용자로부터의 파일 삭제 요청을 전달할 수 있다. 운영 체제(OS)는 파일 삭제 요청에 응답하여 상기 파일에 대응하는 메타 데이터의 변경, 유저 데이터에 대한 무효화 처리 등을 포함하는 운영 체제(OS) 상에서의 파일 삭제 동작을 처리할 수 있다. 운영 체제(OS) 상에서의 파일 삭제 동작이 수행되기 전에 전술한 호스트 어플리케이션(110) 주도의 파일 삭제 동작이 진행되므로, 운영 체제(OS) 상에서의 파일 삭제 도중 파일의 복구 시도가 발생되더라도, 파일이 정상적으로 복구됨이 없이 안전하게 파일이 삭제될 수 있다.
도 3은 본 발명의 실시예에 따른 안전 삭제 모듈의 기능이 소프트웨어적으로 구현되는 예를 나타내는 블록도이다.
도 3을 참조하면, 호스트(300)는 중앙 프로세싱 유닛(central processing unit, 310) 및 동작 메모리(working memory, 320)를 포함할 수 있다. 또한, 동작 메모리(320)에는 호스트(300)의 기능과 관련된 각종 프로그램들을 포함하는 소프트웨어들이 로딩될 수 있다. 일 예로서, 운영 체제(OS, 321), 안전 삭제 모듈(SDM, 322) 및 파일 시스템(323) 등의 프로그램들이 동작 메모리(320)에 로딩될 수 있다. 예컨대, 동작 메모리(320)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), EEPROM(Electronically Erasable Programmable Read Only Memory), 플래시 메모리 또는 다른 메모리 기술 등으로 구현될 수 있다.
전술한 실시예에서와 유사하게, 안전 삭제 모듈(SDM, 322)은 호스트 어플리케이션과 같이 호스트에 별개로 설치되거나, 또는 장치 드라이버의 내부에서 실행되는 프로그램으로 구현될 수도 있다.
일 실시예에 따라, 사용자가 운영 체제(OS, 321) 상에서 파일 삭제를 요청하면, 운영 체제(OS, 321)는 메타 데이터 변경 및 데이터 무효화 등의 처리를 통해 파일을 운영 체제(OS, 321) 상에서 삭제할 수 있다. 또는, 일 실시예에 따라, 사용자가 안전 삭제 모듈(SDM, 322)을 통해 파일 삭제를 요청하면, 안전 삭제 모듈(SDM, 322)은 운영 체제(OS, 321)와는 독립적으로 전술한 실시예에 따른 언맵 또는 오버라이트 명령을 스토리지 시스템으로 제공할 수 있다. 또한, 안전 삭제 모듈(SDM, 322)은 운영 체제(OS, 321)와는 독립적으로 무효 데이터에 대한 소거 명령을 스토리지 시스템으로 제공할 수 있다.
전술한 안전 삭제 모듈(SDM, 322) 주도의 파일 삭제 동작이 완료되면, 안전 삭제 모듈(SDM, 322)은 사용자로부터의 파일 삭제 요청을 운영 체제(OS, 321)로 전달할 수 있다. 운영 체제(OS, 321)는 파일 삭제 요청에 응답하여 운영 체제(OS, 321) 상에서의 파일 삭제 동작을 수행할 수 있다.
도 4는 본 발명의 예시적인 실시예에 따른 호스트의 동작방법을 나타내는 플로우차트이다. 이하에서는, 도 4에 도시된 동작들이 호스트에 의해 수행되는 것으로 설명될 것이나, 보다 구체적으로는 도 4에 도시된 동작들 중 적어도 일부는 호스트에 설치되는 안전 삭제 모듈에서 수행되는 동작에 해당할 수 있다. 또한, 이하의 설명에서는, 파일의 데이터로 지칭되는 용어는 유저 데이터에 해당할 수 있으나, 일부의 실시예에서는 상기 파일의 데이터는 메타 데이터 및 유저 데이터를 포함하는 개념으로 정의될 수도 있을 것이다.
먼저, 호스트는 사용자로부터 특정 파일(예컨대, 제1 파일)에 대한 파일 안전 삭제 요청을 수신할 수 있다(S11). 일 예로서, 사용자는 호스트에 설치되는 안전 삭제 모듈을 실행할 수 있으며, 사용자로부터의 파일 안전 삭제 요청이 안전 삭제 모듈로 제공될 수 있다. 일 실시예에 따라, 사용자는 호스트의 운영 체제(OS) 상에서 일반적인 파일 삭제 요청을 제공할 수도 있으며, 이 때 전술한 파일 안전 삭제 요청은 운영 체제(OS) 상에서의 파일 삭제 요청과는 서로 다른 요청에 해당할 것이다.
호스트 내에서 제1 파일이 위치하는 영역의 정보가 획득될 수 있으며(S12), 일 예로서 호스트에 구비되는 파일 시스템으로부터 제1 파일의 데이터의 논리적 저장 위치를 나타내는 논리 주소를 상기 영역 정보로서 획득될 수 있다. 호스트는 논리 주소에 대응하는 영역의 데이터를 무효화시키기 위하여 언맵(Unmap) 명령을 스토리지 시스템으로 제공할 수 있다(S13). 일 실시예에 따라, 호스트는 파일 시스템을 통해 언맵(Unmap) 명령과 함께 언맵이 수행될 데이터가 위치하는 영역을 지시하는 논리 주소를 스토리지 시스템으로 제공할 수 있다. 스토리지 시스템은 언맵(Unmap) 명령에 응답하여 상기 논리 주소와 이에 대응하는 물리 주소 사이의 맵핑 관계를 해제함으로써 상기 제1 파일의 데이터를 무효화할 수 있다.
전술한 언맵 동작이 완료되면, 호스트는 무효한 데이터에 대한 소거 명령을 스토리지 시스템으로 제공할 수 있다(S14). 일 실시예에 따라, 전술한 언맵 동작에 의해 상기 제1 파일의 데이터는 무효화될 수 있으며, 스토리지 시스템은 소거 명령에 응답하여 무효한 데이터를 물리적으로 소거할 수 있다. 일 예로서, 스토리지 시스템이 셀 블록 단위로 데이터를 소거하는 플래시 메모리 칩들을 포함하는 경우, 제1 파일의 무효한 데이터를 포함하는 하나 이상의 셀 블록들을 소거할 수 있다.
상기와 같은 도 4에 도시된 호스트의 안전 삭제 모듈에 의한 파일 삭제 동작이 완료되고 난 후, 호스트는 운영 체제(OS) 상에서 제1 파일을 삭제할 수 있다. 일 실시예에 따라, 안전 삭제 모듈은 사용자로부터의 제1 파일에 대한 안전 삭제 요청에 따른 파일 삭제 동작을 자체적으로 처리하고 난 후, 제1 파일의 삭제 요청을 운영 체제(OS)로 전달할 수 있다.
도 5는 변형 가능한 실시예에 따른 호스트의 동작방법을 나타내는 플로우차트이다. 일 예로서, 도 5에 도시된 단계들의 동작들을 설명함에 있어서, 전술한 도 4에서와 중복되는 단계들에 대한 구체적인 설명은 생략된다.
도 5를 참조하면, 호스트(또는, 안전 삭제 모듈)는 사용자로부터 특정 파일(예컨대, 제1 파일)에 대한 삭제 요청을 수신할 수 있다(S11). 또한, 호스트는 파일 시스템 등의 기능 블록으로부터 파일이 위치하는 영역의 정보를 획득할 수 있는 지를 판단한다(S22).
만약, 파일 시스템으로부터 제1 파일의 데이터의 논리적 저장 위치를 나타내는 논리 주소가 획득될 수 있는 경우, 호스트는 도 4에 도시된 동작과 동일 또는 유사하게 제1 파일의 데이터를 무효화하기 위한 언맵(Unmap) 명령과 함께 상기 획득된 논리 주소를 스토리지 시스템으로 제공할 수 있다(S23). 또한, 전술한 언맵 동작이 완료되면, 호스트는 무효한 데이터에 대한 소거 명령을 스토리지 시스템으로 제공할 수 있다(S24).
반면에, 파일 시스템으로부터 제1 파일의 데이터의 논리적 저장 위치를 나타내는 논리 주소가 획득될 수 없는 경우, 호스트는 제1 파일의 데이터에 대한 오버라이트 명령을 생성하고 이를 스토리지 시스템으로 제공할 수 있다(S25). 일 예로서, 제1 파일의 데이터에 대해 별도의 논리 주소가 할당됨이 없이 제1 파일의 데이터가 메타 데이터와 함께 관리되는 경우, 호스트는 파일 시스템을 통하여 제1 파일의 데이터에 상응하는 크기의 더미 데이터를 제1 파일의 데이터에 오버라이트 할 것을 나타내는 명령을 스토리지 시스템으로 제공할 수 있다. 파일 시스템은 제1 파일의 데이터가 저장된 논리적 위치를 판단할 수 있으며, 파일 시스템의 관리 하에서 제1 파일의 데이터에 임의의 데이터가 오버라이트될 수 있다.
일 실시예에 따라, 제1 파일의 데이터는 기존에 제1 물리 주소에 대응하는 영역에 저장되고, 임의의 데이터가 오버라이트된 결과는 제2 물리 주소에 대응하는 영역에 저장될 수 있다. 이 때, 제2 물리 주소에 대응하는 영역에 저장된 오버라이트된 데이터는 유효한 데이터에 해당하나, 기존의 데이터에 임의의 데이터가 오버라이트 되었으므로, 이를 통해 제1 파일의 정상적인 데이터가 복구될 수 없다. 또한, 기존에 제1 물리 주소에 대응하는 영역에 저장된 데이터는 무효한 데이터로 처리될 수 있다.
상기와 같은 도 5에 도시된 호스트의 안전 삭제 모듈에 의한 파일 삭제 동작이 완료되고 난 후, 호스트는 운영 체제(OS) 상에서 제1 파일을 삭제할 수 있다.
도 6 및 도 7은 언맵 명령에 의해 데이터가 무효화된 경우와 오버라이트 명령에 의해 데이터가 무효화되는 예를 나타내는 블록도이다. 도 6의 (a)는 호스트가 관리하는 논리적 영역(Logical Region)에서의 파일들의 논리적 저장 위치를 나타내고, (b)는 스토리지 시스템이 관리하는 물리적 영역(Physical Region)에서의 파일들의 물리적 저장 위치를 나타낸다.
도 6을 참조하면, 파일 시스템이 제1 파일(File 1)을 관리함에 있어서, 제1 파일(File 1)의 메타 데이터(meta)가 스토리지 시스템에 저장되는 것을 관리함과 함께, 제1 파일(File 1)의 데이터(C-1, C-2)를 스토리지 시스템에 저장하기 위한 논리 주소(LA1, LA2)를 할당할 수 있다. 본 발명의 실시예에 따른 안전 삭제 모듈은 파일 시스템을 통해 제1 파일(File 1)의 데이터(C-1, C-2)가 위치하는 영역의 정보로서 논리 주소(LA1, LA2)를 획득할 수 있다. 스토리지 시스템에서, 논리 주소(LA1, LA2)는 물리 주소(PA1, PA2)에 맵핑된 상태를 갖는 것으로 가정된다.
안전 삭제 모듈로부터의 언맵 명령에 따라, 스토리지 시스템은 논리 주소(LA1, LA2)와 물리 주소(PA1, PA2) 사이의 맵핑 관계를 해제할 수 있다. 맵핑 관계가 해제됨에 따라, 기존에 물리 주소(PA1, PA2)에 저장된 데이터(C-1, C-2)는 무효 데이터로 처리될 수 있다.
또는, 스토리지 시스템은 논리 주소(LA1, LA2)를 다른 물리 주소(예컨대, PA3 및 PA4)에 새로이 맵핑할 수 있다. 상기 다른 물리 주소(예컨대, PA3 및 PA4)에는 제1 파일(File 1)과는 무관한 더미 데이터들(D-1, D-2)이 저장될 수 있다. 논리 주소(LA1, LA2)와 기존의 물리 주소(PA1, PA2)와의 맵핑 관계가 해제됨에 따라 기존에 물리 주소(PA1, PA2)에 저장된 데이터(C-1, C-2)는 무효 데이터로 처리될 수 있다. 또한, 논리 주소(LA1, LA2)에 새로이 맵핑된 물리 주소(예컨대, PA3 및 PA4)에 저장된 더미 데이터들(D-1, D-2)이 유효한 데이터에 해당하나, 더미 데이터들(D-1, D-2)는 제1 파일(File 1)과는 무관한 것으로서, 더미 데이터들(D-1, D-2)에 의해 제1 파일(File 1)의 데이터가 복구될 수 없다.
한편, 도 7을 참조하면, 파일 시스템을 통해 제1 파일(File 1)의 데이터(A, B)가 위치하는 영역의 정보로서 논리 주소가 획득되지 않는 경우, 안전 삭제 모듈은 파일 시스템을 통해 제1 파일(File 1)의 데이터(A, B)에 임의의 데이터를 오버라이트 할 것을 명령하는 오버라이트 명령을 제공할 수 있다. 일 예로서, 파일 시스템은 제1 파일(File 1)의 데이터(A, B)에 대해 별도의 논리 주소를 관리함이 없이, 메타 데이터와 함께 데이터(A, B)를 스토리지 시스템에 저장하는 동작을 관리할 수 있다.
안전 삭제 모듈로부터의 오버라이트 명령이 파일 시스템을 통해 스토리지 시스템으로 제공될 수 있다. 파일 시스템은 제1 파일(File 1)의 데이터(A, B)의 논리적 저장 위치(예컨대, 논리 주소(LA1, LA2))를 판단할 수 있으며, 스토리지 시스템은 논리 주소(LA1, LA2)에 맵핑된 물리 주소(PA1, PA2)에 저장된 데이터에 대해 임의의 데이터를 오버라이트할 수 있다. 임의의 데이터가 오버라이트된 데이터(A', B')는 기존의 물리 주소(PA1, PA2)와는 다른 물리 주소(예컨대, PA3 및 PA4)에 대응하는 영역에 저장될 수 있다. 이 때, 기존의 물리 주소(PA1, PA2)에 저장된 데이터(A, B)는 무효 데이터로 처리될 수 있다. 또한, 상기 다른 물리 주소(예컨대, PA3 및 PA4)에 저장된 오버라이트된 데이터(A', B')는 유효한 데이터에 해당하나, 오버라이트된 데이터(A', B')는 제1 파일(File 1)과는 무관한 것으로서, 오버라이트된 데이터(A', B')에 의해 제1 파일(File 1)의 데이터가 복구될 수 없다.
도 8은 스토리지 시스템에서 무효한 데이터가 소거되는 예를 나타내는 블록도이다.
본 발명의 실시예들에 따라, 안전 삭제 모듈이 삭제 요청된 파일의 데이터를 무효화시킨 후, 안전 삭제 모듈은 무효한 데이터의 소거 명령을 스토리지 시스템으로 제공할 수 있다. 도 8에서는, 스토리지 시스템의 물리 주소들(PA11 ~ PA14)에는 하나 이상의 파일들의 무효한 데이터(A, B, C-1, C-2)가 저장되고, 물리 주소들(PA21 ~ PA24)에는 언맵 명령이나 오버라이트 명령 등에 의해 논리 주소에 새로이 맵핑된 데이터(A', B', D-1, D-2)가 저장되는 예가 도시된다. 일 예로서, 제1 파일의 데이터(A)와 제2 파일의 데이터(B)는 기존에 무효화된 데이터에 해당하고, 제3 파일의 데이터(C-1, C-2)는 현재 파일 삭제 요청에 의해 무효화된 데이터에 해당하는 것으로 가정한다. 또한, 상기 무효한 데이터(A, B, C-1, C-2)는 파일들의 실제 정보를 갖고 있으므로, 파일들의 안전한 삭제를 위해 물리적으로 소거될 필요가 있는 데이터에 해당할 수 있다.
스토리지 시스템은 안전 삭제 모듈로부터의 소거 명령에 따라 다양한 방식을 통해 무효 데이터를 소거할 수 있다. 일 예로서, 안전 삭제 모듈은 특정 파일(예컨대, 제3 파일)에 관련된 무효 데이터를 소거할 것을 나타내는 명령을 스토리지 시스템으로 제공할 수 있으며, 만약 제3 파일에 관련된 무효 데이터(예컨대, C-1, C-2)가 존재하는 경우, 스토리지 시스템은 안전 삭제 모듈로부터의 소거 명령에 따라 물리 주소(PA13, PA14)에 위치하는 제3 파일의 무효 데이터(예컨대, C-1, C-2)를 선택적으로 소거할 수 있다.
변형 가능한 실시예로서, 안전 삭제 모듈은 이전 및 현재에 삭제가 요청된 다수의 파일들에 관련된 무효 데이터를 소거할 것을 나타내는 소거 명령을 스토리지 시스템으로 제공할 수 있다. 이 경우, 스토리지 시스템은 안전 삭제 모듈로부터의 언맵 명령 또는 오버라이트 명령에 의해 삭제 처리된 두 개 이상의 파일들의 무효 데이터를 소거할 수 있다. 일 예로서, 도 8에 도시된 파일들 중 제2 파일의 데이터(B)와 제3 파일의 데이터(C-1, C-2)가 안전 삭제 모듈로부터의 언맵 명령 또는 오버라이트 명령에 의해 무효화된 경우에는, 스토리지 시스템은 안전 삭제 모듈로부터의 소거 명령에 따라 물리 주소(PA11)에 위치하는 제2 파일의 무효 데이터(예컨대, B) 및 물리 주소(PA13, PA14)에 위치하는 제3 파일의 무효 데이터(예컨대, C-1, C-2)를 선택적으로 소거할 수 있다.
또한, 변형 가능한 실시예로서, 스토리지 시스템 내에는 안전 삭제 모듈에 의해 삭제된 파일에 관련된 다수의 무효 데이터들이 포함됨과 함께, 다른 메모리 동작에 의해 발생된 무효 데이터들이 함께 포함될 수 있다. 일 실시예에 따라, 스토리지 시스템은 데이터 카피, 스왑, 업데이트 등의 다양한 메모리 동작에 의해 무효 데이터를 발생시킬 수 있다. 또한, 일 실시예에 따라, 스토리지 시스템에서 일부의 파일들은 운영 체제(OS) 상에서 삭제될 수 있으며, 상기 운영 체제(OS) 상에서의 파일 삭제 동작에 의해 무효 데이터가 발생될 수 있다.
본 발명의 일 실시예에 따라, 안전 삭제 모듈은 스토리지 시스템 내에 포함되는 무효 데이터들 전체에 대한 소거 명령을 제공할 수 있으며, 스토리지 시스템은 안전 삭제 모듈로부터의 소거 명령에 응답하여 그 내부에 존재하는 모든 무효 데이터를 소거할 수 있다. 일 예로서, 도 8에 도시된 파일들 중 제2 파일의 데이터(B)와 제3 파일의 데이터(C-1, C-2)가 안전 삭제 모듈로부터의 언맵 명령 또는 오버라이트 명령에 의해 무효화되고, 제1 파일의 데이터(A)가 다른 메모리 동작이나 운영 체제(OS) 상에서의 파일 삭제 동작에 의해 무효화된 경우, 스토리지 시스템은 안전 삭제 모듈로부터의 소거 명령에 응답하여 전체 무효 데이터(A, B, C-1, C-2)를 소거할 수 있다.
일 실시예에 따라, 상기 무효 데이터가 저장된 물리 주소의 정보는 스토리지 시스템 내의 맵핑 테이블을 통해 관리될 수 있으며, 또한 무효화에 관련된 정보(예컨대, 일반 동작에 따른 무효화, 파일 안전 삭제에 따른 무효화)를 나타내는 값이 맵핑 테이블에 저장될 수 있다. 스토리지 시스템은 상기 맵핑 테이블에 저장된 정보를 참조하여 무효 데이터들을 다양한 방식에 따라 소거할 수 있다.
도 9는 본 발명의 변형 가능한 실시예에 따른 호스트의 동작방법을 나타내는 플로우차트이다. 일 실시예에 따라, 호스트는 소프트웨어, 또는 하드웨어, 또는 소프트웨어 및 하드웨어의 조합으로 구현될 수 있는 안전 삭제 모듈을 포함할 수 있다. 도 9에 도시된 각종 동작들의 수행 주체가 호스트인 것으로 설명될 것이나, 구체적으로는 각종 동작들의 적어도 일부는 안전 삭제 모듈이 수행하는 것으로 설명될 수도 있을 것이다.
도 9를 참조하면, 사용자는 특정 파일(예컨대, 제1 파일)에 대한 삭제 요청을 호스트로 제공할 수 있으며, 일 실시예에 따라 안전 삭제 모듈이 별도의 호스트 어플리케이션으로 구현되는 경우에는, 사용자는 호스트 어플리케이션을 실행하고 이를 통해 안전하게 삭제될 파일을 선택할 수 있다.
사용자로부터의 삭제 요청에 따라, 호스트는 제1 파일이 저장된 위치가 고정되도록 제1 파일에 대한 락킹(Locking) 동작을 수행할 수 있다(S31). 일 예로서, 안전 삭제 모듈로부터의 락킹 명령이 호스트 내의 파일 시스템으로 제공될 수 있다. 파일 시스템은 호스트 내의 운영 체제(OS) 또는 다른 호스트 어플리케이션으로부터 요청이 수신되더라도, 안전 삭제 모듈 주도의 파일 삭제 동작이 완료되기 전까지 제1 파일이 저장된 위치가 고정되도록 파일을 관리한다. 락킹(Locking) 동작은 제1 파일의 메타 데이터의 특정 플래그의 값을 소정의 값으로 설정함으로써 수행될 수 있다. 이에 따라, 파일 위치의 변경으로 인해 사용자가 원하지 않은 다른 파일이 삭제될 위험이 제거될 수 있다.
제1 파일이 저장된 위치가 고정된 상태에서, 호스트는 전술한 실시예에 따른 파일 삭제 동작을 수행할 수 있다. 일 예로서, 제1 파일이 위치하는 영역 정보가 파일 시스템으로부터 획득될 수 있는 지 여부에 따라, 호스트는 파일에 대한 언맵 명령을 제공하거나 또는 파일에 대한 오버라이트 명령을 제공할 수 있다(S32). 일 예로서, 영역 정보가 획득되는 경우 호스트는 제1 파일의 데이터를 무효화하기 위해 언맵 명령을 스토리지 시스템으로 제공할 수 있다. 반면에, 영역 정보가 획득될 수 없는 경우, 호스트는 제1 파일의 데이터를 무효화하기 위해 제1 파일의 기존의 데이터와 동일한 크기의 임의의 데이터를 오버라이트 할 것을 명령하는 오버라이트 명령을 스토리지 시스템으로 제공할 수 있다.
상기와 같은 언맵 명령 또는 오버라이트 명령이 스토리지 시스템에 의해 수행되고 나면, 전술한 실시예들에 따라 호스트는 무효한 데이터를 소거할 것을 명령하는 소거 명령을 스토리지 시스템으로 제공할 수 있다(S33). 스토리지 시스템은 전술한 실시예들에 따라 제1 파일에 대응하는 무효 데이터만을 선택적으로 소거할 수 있다. 또는, 스토리지 시스템은 운영 체제(OS) 및 안전 삭제 모듈을 통해 파일 삭제가 요청된 두 개 이상의 파일들의 무효 데이터를 함께 소거할 수 있다. 또는, 변형 가능한 실시예로서, 스토리지 시스템은 내부에 존재하는 전체 무효 데이터에 대한 소거 동작을 수행할 수도 있다.
상기와 같은 운영 체제(OS)와 독립적인 파일 안전 삭제 동작이 완료되면, 호스트는 상기 선택된 제1 파일에 대한 락킹을 해제한다(S34). 제1 파일의 락킹이 해제되고 난 후 운영 체제(OS) 상에서 제1 파일에 대한 삭제 동작이 수행될 수 있다.
도 10 및 도 11은 파일 삭제 동작에 파일명을 포함하는 메타 데이터의 변경 동작이 포함되는 예를 나타내는 도면이다. 도 10 및 도 11에 도시된 각종 동작들을 설명함에 있어서, 전술한 실시예에서와 동일 또는 유사한 동작에 대해서는 구체적인 설명이 생략된다.
도 10 및 도 11을 참조하면, 호스트(또는, 안전 삭제 모듈)가 사용자로부터 제1 파일에 대한 삭제 요청을 수신함에 따라, 전술한 실시예들에 따라 제1 파일의 데이터를 무효화시키기 위한 일련의 동작들이 수행될 수 있다. 예컨대, 호스트는 삭제가 요청된 제1 파일이 위치하는 영역 정보를 획득할 수 있으며(S41), 또한, 제1 파일의 데이터를 무효화시키기 위한 언맵 명령을 제공할 수 있다(S42). 전술한 실시예들에 따라, 제1 파일의 데이터를 무효화시킴에 있어서 논리 주소의 획득 여부가 판단될 수 있으며, 논리 주소가 획득되지 않는 경우에는 제1 파일의 데이터를 임의의 데이터로 오버라이트하기 위한 오버라이트 명령이 제공될 수 있다.
한편, 제1 파일의 메타 데이터에도 사용자가 보안을 필요로 하는 중요 정보가 포함될 수 있다. 일 예로서, 제1 파일의 메타 데이터에는 제1 파일의 파일명에 관련된 정보가 포함될 수 있으며, 파일에 대한 안전 삭제를 위해서는 상기 파일의 파일명 또한 삭제될 필요가 있다.
호스트는 제1 파일의 파일명을 삭제하기 위하여 제1 파일의 메타 데이터를 무효화시키기 위한 동작을 수행할 수 있다. 일 예로서, 제1 파일의 메타 데이터가 위치되는 영역의 논리 주소가 획득될 수 없는 경우, 호스트는 제1 파일의 메타 데이터를 임의의 데이터로 오버라이트하기 위한 오버라이트 명령을 제공할 수 있다(S43). 일 예로서, 메타 데이터 중 파일명에 대해서만 임의의 데이터가 오버라이트될 수 있으며, 또는 메타 데이터 전체에 대해 임의의 데이터가 오버라이트될 수 있다. 이에 따라, 오버라이트된 메타 데이터로부터 파일명이 복구될 수 없다.
상기와 같은 일련의 동작에 따라, 제1 파일의 기존의 데이터 및 기존의 메타 데이터가 무효화될 수 있다. 호스트는 상기 무효화된 데이터 및 메타 데이터를 소거할 것을 명령하는 소거 명령을 스토리지 시스템으로 제공할 수 있다(S44). 이에 따라, 제1 파일의 실제 내용(예컨대, 유저 데이터)과 함께 제1 파일의 파일명 등의 중요 정보가 안전하게 삭제될 수 있다.
한편, 도 11를 참조하면, 제1 파일의 데이터(Data A)의 논리 주소가 획득됨에 따라, 제1 파일의 데이터(Data A)는 전술한 언맵 명령에 따라 무효화될 수 있다. 예컨대, 논리 주소(LA2)에 기존에 맵핑된 물리 주소(PA3)에 데이터(Data A)가 저장되었으나, 상기 논리 주소(LA2)와 물리 주소(PA3) 사이의 맵핑 관계가 해제될 수 있다. 일 실시예에 따라, 논리 주소(LA2)는 임의의 데이터(예컨대, 더미 데이터(D))가 저장된 물리 주소(PA4)에 새로이 맵핑될 수 있다.
이와 함께, 제1 파일의 메타 데이터(Meta A)의 적어도 일부의 정보는 전술한 오버라이트 명령에 따라 무효화될 수 있다. 일 예로서, 기존에 물리 주소(PA1)에 저장된 메타 데이터(Meta A)에 임의의 데이터가 오버라이트되면, 오버라이트된 메타 데이터(Meta A')는 다른 물리 주소(PA2)에 대응하는 위치에 저장되고, 기존에 물리 주소(PA1)에 저장된 메타 데이터(Meta A)는 무효화될 수 있다. 상기와 같은 무효화 처리가 완료된 후, 무효화된 데이터는 호스트의 명령에 기반하여 소거될 수 있다.
도 12는 본 발명의 예시적인 실시예에 따른 컴퓨팅 시스템에서, 파일 안전 삭제에 관련된 호스트와 스토리지 시스템 각각의 동작을 나타내는 개념도이다.
도 12를 참조하면, 사용자의 파일 안전 삭제 요청에 따라 호스트가 해당 파일을 락킹할 수 있다. 또한, 파일이 락킹된 상태에서 해당 파일을 안전하게 삭제하기 위한 일련의 동작들이 수행될 수 있으며, 예컨대 파일의 메타 데이터에 대한 오버라이트 동작을 통해 파일명을 임의의 내용으로 변경할 수 있다.
이와 함께, 호스트는 파일의 데이터를 무효화시키기 위한 동작을 수행할 수 있으며, 일 예로서 파일의 데이터에 대한 언맵 명령을 제공하거나 오버라이트 명령을 제공할 수 있다. 스토리지 시스템은 언맵 명령 또는 오버라이트 명령에 대응하는 동작을 수행하고, 이에 따라 파일의 데이터가 무효화될 수 있다. 또한, 언맵 또는 오버라이트 동작이 완료되면, 스토리지 시스템은 데이터 무효화 동작 처리가 완료되었음을 나타내는 응답 신호(Acknowledge)를 호스트로 제공할 수 있다.
한편, 호스트는 무효화된 데이터를 소거하기 위한 소거 명령을 스토리지 시스템으로 제공할 수 있으며, 스토리지 시스템은 무효 데이터를 소거한 후 응답 신호(Acknowledge)를 호스트로 제공할 수 있다. 무효 데이터에 관련된 정보(예컨대, 무효 데이터가 위치하는 논리 주소 및/또는 물리 주소 정보)는 스토리지 시스템 내부에서 관리될 수 있으며, 호스트로부터의 소거 명령에 따라 사용자에 의해 선택된 파일의 무효 데이터를 선택적으로 소거할 수 있다. 또는, 스토리지 시스템은 호스트로부터의 소거 명령에 따라 스토리지 시스템 내부에 존재하는 다른 파일의 무효 데이터를 더 소거할 수도 있다.
상기와 같은 파일 안전 삭제 동작이 완료되면, 해당 파일에 대한 락킹이 해제되고, 락킹이 해제된 파일은 운영 체제(OS) 상에서 다시 삭제될 수 있다. 이 때, 운영 체제(OS) 상에서 삭제될 파일은 전술한 파일 안전 삭제 기능에 의해 그 파일명 및 내용이 이미 변경된 파일에 해당할 수 있으며, 이에 따라 운영 체제(OS) 상에서 파일 삭제가 진행되지 않는 구간이 존재하더라도 해당 파일의 원래의 정보가 복구될 수 없다.
도 13a,b 스토리지 시스템에서 무효 데이터에 대한 소거 동작의 일 예를 나타내는 도면이다. 도 13a,b에서는 파일의 히스토리 테이블을 이용한 소거 동작의 일 예가 도시된다.
도 13a,b를 참조하면, 제1 파일의 데이터(예컨대, 유저 데이터(Data A))는 제1 물리 주소(PA1)에 대응하는 영역에 저장될 수 있으며, 또한 제2 파일의 데이터(예컨대, 유저 데이터(Data B))는 제2 물리 주소(PA2)에 대응하는 영역에 저장될 수 있다. 제1 파일 및 제2 파일의 데이터(Data A, Data B)는 다양한 메모리 동작을 통해 물리적으로 저장되는 위치가 변경될 수 있다. 일 예로서, 제1 파일 및 제2 파일의 데이터(Data A, Data B)의 내용이 변경되는 경우, 변경된 데이터가 새로운 물리 주소에 대응하는 영역에 저장되고, 기존의 데이터는 무효화될 수 있다.
일 예로서, 제1 파일의 데이터(Data A)가 변경되어 제3 물리 주소(PA3)로 이동된 후 제7 물리 주소(PA7)로 이동될 수 있다. 또한, 제2 파일의 데이터(Data B)가 변경되어 제4 물리 주소(PA4) 및 제5 물리 주소(PA5)로 이동된 후 제6 물리 주소(PA6)로 이동될 수 있다. 이 때, 제7 물리 주소(PA7)에 저장된 데이터(Data A'')가 제1 파일의 유효한 데이터에 해당하고, 제1 물리 주소(PA1) 및 제3 물리 주소(PA3)에 저장된 데이터들(Data A, Data A')은 무효 데이터에 해당할 수 있다. 이와 유사하게, 제6 물리 주소(PA6)에 저장된 데이터(Data B''')가 제2 파일의 유효한 데이터에 해당하고, 제2 물리 주소(PA2), 제4 물리 주소(PA4) 및 제5 물리 주소(PA5)에 저장된 데이터들(Data B, Data B', Data B'')은 무효 데이터에 해당할 수 있다. 본 발명의 실시예에 따라, 제1 파일의 유효한 데이터(Data A'')와 제2 파일의 유효한 데이터(Data B''')는 각각의 대응하는 파일의 정보와는 무관한 임의의 정보(예컨대, 더미 데이터 또는 오버라이트된 데이터)에 해당할 수 있다.
호스트로부터의 무효 데이터 소거 명령이 스토리지 시스템으로 제공되면, 스토리지 시스템은 해당 파일의 무효 데이터만을 선택적으로 찾아서 이를 소거할 수 있다. 만약, 호스트로부터 제1 파일의 무효 데이터에 대한 소거 명령이 제공되면, 스토리지 시스템은 제1 물리 주소(PA1) 및 제3 물리 주소(PA3)의 무효 데이터들(Data A, Data A')을 소거할 수 있다. 또는, 호스트로부터의 소거 명령이 다수의 파일들에 대한 소거 명령에 해당하는 경우에는, 스토리지 시스템은 제1 물리 주소(PA1) 및 제3 물리 주소(PA3)의 무효 데이터들(Data A, Data A') 및 제2 물리 주소(PA2), 제4 물리 주소(PA4) 및 제5 물리 주소(PA5)의 무효 데이터들(Data B, Data B', Data B'')을 소거할 수 있다.
도 13b는 상기와 같은 무효 데이터의 소거 동작을 관리하기 위한 히스토리 테이블의 일 구현 예를 나타내는 표이다. 스토리지 시스템은 그 내부에 히스토리 테이블을 구비하고, 각각의 파일의 데이터가 이동되는 히스토리를 관리함으로써 각각의 파일에 관련된 다수 개의 무효 데이터들의 위치를 판단할 수 있다. 전술한 예에서와 같이, 호스트에서 판단하는 제1 파일의 논리적 위치를 나타내는 논리 주소는 제1 논리 주소(LA1)에 해당하고, 제1 논리 주소(LA1)는 제1 파일의 유효한 데이터가 저장된 제7 물리 주소(PA7)에 맵핑될 수 있다. 또한, 호스트에서 판단하는 제2 파일의 논리적 위치를 나타내는 논리 주소는 제2 논리 주소(LA2)에 해당하고, 제2 논리 주소(LA2)는 제2 파일의 유효한 데이터가 저장된 제6 물리 주소(PA6)에 맵핑될 수 있다.
히스토리 테이블에는 제1 파일과 관련하여 제1 논리 주소(LA1)에 기존에 맵핑되었던 물리 주소들(PA1, PA3)의 정보가 포함될 수 있으며, 상기 물리 주소들에 저장된 데이터가 무효함을 나타내는 정보가 포함될 수 있다. 이와 유사하게, 히스토리 테이블에는 제2 파일과 관련하여 제2 논리 주소(LA2)에 기존에 맵핑되었던 물리 주소들(PA2, PA4, PA5)의 정보가 포함될 수 있으며, 상기 물리 주소들에 저장된 데이터가 무효함을 나타내는 정보가 포함될 수 있다. 스토리지 시스템은 히스토리 테이블에 저장된 정보를 참조하여 무효 데이터를 다양한 방식에 따라 소거할 수 있다.
도 14는 본 발명의 변형 가능한 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 14를 참조하면, 컴퓨팅 시스템(400)은 호스트(410) 및 스토리지 시스템(420)을 포함할 수 있다. 또한, 스토리지 시스템(420)은 소거 제어회로(421) 및 소거 상태 판단 모듈(422)을 포함할 수 있다. 소거 상태 판단 모듈(422)은 스토리지 시스템(420) 내에서 무효한 데이터에 대한 소거 진행 상태를 판단할 수 있으며, 일 예로서 소거 대상의 전체 무효 데이터 대비 소거가 완료된 무효 데이터의 비율을 나타내는 판단 결과를 발생하거나, 또는 소거 동작에 소요되는 시간을 판단한 결과 등을 발생할 수 있다. 상태를 판단한 결과(Status)는 호스트(410)로 제공될 수 있다. 또한, 소거 제어회로(421)는 호스트(410)로부터의 소거 명령(Del_Invalid)에 응답하여 무효 데이터를 소거하는 동작을 수행할 수 있다.
전술한 실시예에서와 유사하게, 호스트(100)는 안전 삭제 모듈(411)을 포함할 수 있다. 또한, 안전 삭제 모듈(411)은 소거 명령 제어부(411_1)를 포함할 수 있다. 안전 삭제 모듈(411)은 전술한 실시예들에 따라 안전 삭제 대상의 파일의 데이터를 무효화시키기 위하여 언맵 명령(Unmap) 또는 오버라이트 명령(Overwrite)을 스토리지 시스템(420)으로 제공할 수 있다. 또한, 데이터를 무효화시키고 난 후, 안전 삭제 모듈(411)은 무효 데이터를 소거하기 위한 소거 명령(Del_Invalid)을 스토리지 시스템(420)으로 제공할 수 있다.
소거 명령 제어부(411_1)는 소거 명령(Del_Invalid)의 출력 동작을 제어할 수 있다. 일 예로서, 안전 삭제 모듈(411)의 제어 하에서 안전 삭제 대상의 파일의 데이터에 대한 무효화 처리가 완료되고 난 후, 소거 명령 제어부(411_1)는 소거 명령(Del_Invalid)이 스토리지 시스템(420)으로 제공되도록 안전 삭제 모듈(411)을 제어할 수 있다. 또한, 소거 명령 제어부(411_1)는 스토리지 시스템(420)으로부터의 판단 결과(Status)에 따라, 스토리지 시스템(420)에서의 소거 동작을 비활성화하기 위한 비활성화 제어신호(Inact_del)가 스토리지 시스템(420)으로 제공되도록 안전 삭제 모듈(411)을 제어할 수 있다.
상기 판단 결과(Status)에 따라 다양한 방식으로서 무효 데이터 소거 동작이 제어될 수 있다. 일 예로서, 호스트(410)가 스토리지 시스템(420)에 대한 데이터 억세스를 필요로 할 때, 소거 명령 제어부(411_1)는 상기 판단 결과(Status)를 참조하여 무효 데이터의 소거 동작 비활성화 여부를 판단할 수 있다. 예컨대, 이후의 소거 동작에 소요되는 시간이 소정의 임계값 보다 큰 경우, 소거 명령 제어부(411_1)의 제어 하에서 비활성화 제어신호(Inact_del)가 스토리지 시스템(420)으로 제공될 수 있다. 이에 따라, 호스트(410)는 소거 동작이 비활성화되는 동안 데이터 억세스 요청을 스토리지 시스템(420)으로 제공할 수 있다. 호스트(100)가 필요로 하는 데이터 억세스가 모두 완료되면, 소거 명령(Del_Invalid)이 스토리지 시스템(420)으로 다시 제공됨에 따라 소거 동작이 다시 수행될 것이다.
도 15는 다양한 종류의 스토리지 시스템이 컴퓨팅 시스템에 적용된 예를 나타내는 블록도이다.
도 15를 참조하면, 컴퓨팅 시스템(500)은 불휘발성하게 데이터를 저장하는 스토리지 시스템(530)이 장착된 다양한 종류의 시스템일 수 있다. 일 예로서, 컴퓨팅 시스템(500)은 컴퓨터, 넷북(net-book), 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트 폰(smart phone), e-북(e-book), 네비게이션(navigation) 장치 및 디지털 카메라(digital camera) 등 다양한 종류의 시스템에 해당할 수 있다.
컴퓨팅 시스템(500)은 중앙 프로세싱 유닛(CPU, 510), 동작 메모리(520) 및 스토리지 시스템(530)을 포함할 수 있다. 스토리지 시스템(530)은 데이터를 불휘발성하게 저장할 수 있는 다양한 종류의 메모리 시스템일 수 있다. 일 예로서, 스토리지 시스템(530)은 하나 이상의 플래시 메모리 칩을 포함하는 메모리 카드 시스템일 수 있다. 컴팩트 플래시 카드(Compact Flash Card, CFC), 유니버셜 플래시 스토리지(Universal Flash Storage, UFS) 카드, 마이크로 드라이브(Microdrive), 스마트 미디어 카드(Smart Media Card, SMC) 멀티미디어 카드(Multimedia Card, MMC), 보안 디지털 카드(Security Digital Card, SDC), 메모리 스틱(Memory Stick), 및 USB 플래시 메모리 드라이버 등이 스토리지 시스템(530)에 적용될 수 있다.
또는, 스토리지 시스템(530)은 SSD 시스템에 해당할 수 있으며, 스토리지 시스템(530)은 다수의 메모리 칩들(532_1 ~ 532_n)이 다수의 채널들(Ch 1 ~ Ch n)을 통해 컨트롤러(531)에 연결될 수 있다.
본 발명의 일 실시예에 따라, 안전 삭제 모듈(SDM)이 소프트웨어(SW)로 구현되어 스토리지 시스템(530)에 저장될 수 있다. 즉, 스토리지 시스템(530)은 전술한 실시예들의 파일 안전 삭제 기능을 수행하기 위한 소프트웨어(SW)를 저장하는 저장 매체에 해당할 수 있다.
스토리지 시스템(530)이 컴퓨팅 시스템(500)에 장착되고, 컴퓨팅 시스템(500)으로 전원이 인가됨에 따라 스토리지 시스템(530)에 저장된 안전 삭제 모듈(SDM)이 동작 메모리(520)에 로딩될 수 있다. 컴퓨팅 시스템(500)은 다양한 어플리케이션(예컨대, 호스트 어플리케이션)을 실행할 수 있으며, 또한 스토리지 시스템(530)에 대한 데이터 억세스 동작을 수행할 수 있다. 또한, 사용자가 파일 안전 삭제 요청을 제공하면, 동작 메모리(520)에 로딩된 안전 삭제 모듈이 실행되고, 이에 따라 전술한 실시예들에 따른 안전 삭제 모듈 기반의 파일 삭제 동작이 수행될 수 있다. 예컨대, 안전 삭제 모듈로부터의 언맵 명령 또는 오버라이트 명령에 의해 파일의 데이터가 무효화되고, 안전 삭제 모듈로부터의 무효 데이터 소거 명령에 따라 무효 데이터가 물리적으로 소거될 수 있다. 또한, 안전 삭제 모듈 기반의 파일 삭제 동작이 완료되면, 컴퓨팅 시스템(500)에 설치되는 운영 체제(OS) 상에서의 파일 삭제 동작이 수행될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 호스트의 동작 방법에 있어서,
    스토리지 시스템에 저장된 제1 파일에 대한 안전 삭제 요청을 수신하는 단계;
    상기 제1 파일의 데이터를 무효화시키기 위한 무효화 명령을 상기 스토리지 시스템으로 제공하는 단계;
    상기 스토리지 시스템 내의 무효 데이터에 대한 소거 명령을 상기 스토리지 시스템으로 제공함으로써, 상기 스토리지 시스템 내에 저장된 상기 제1 파일의 무효 데이터를 물리적으로 소거시키는 단계; 및
    상기 소거 명령에 의해 상기 제1 파일의 무효 데이터가 소거된 이후, 상기 제1 파일에 대해 상기 호스트 내의 운영 체제 상에서의 삭제 동작을 수행하는 단계를 구비하는 것을 특징으로 하는 호스트의 동작 방법.
  2. 제1항에 있어서,
    상기 호스트에는 안전 삭제 모듈이 설치되고, 상기 안전 삭제 요청은 상기 안전 삭제 모듈을 통해 수신되는 것을 특징으로 하는 호스트의 동작 방법.
  3. 제1항에 있어서,
    상기 무효화 명령을 상기 스토리지 시스템으로 제공하는 단계는, 상기 제1 파일의 데이터에 대한 언맵 명령을 상기 스토리지 시스템으로 제공하는 것을 특징으로 하는 호스트의 동작 방법.
  4. 제1항에 있어서,
    상기 무효화 명령을 상기 스토리지 시스템으로 제공하는 단계는, 상기 제1 파일의 데이터에 대한 오버라이트 명령을 상기 스토리지 시스템으로 제공하는 것을 특징으로 하는 호스트의 동작 방법.
  5. 제1항에 있어서,
    상기 호스트에 구비되는 파일 시스템으로부터 상기 제1 파일이 위치하는 논리 주소의 획득 여부를 판단하는 단계를 더 구비하고,
    상기 논리 주소가 획득되는 경우, 상기 제1 파일의 데이터에 대한 언맵 명령이 상기 무효화 명령으로서 제공되고,
    상기 논리 주소가 획득되지 않는 경우, 상기 제1 파일의 데이터에 대한 오버라이트 명령이 상기 무효화 명령으로서 제공되는 것을 특징으로 하는 호스트의 동작 방법.
  6. 제1항에 있어서,
    상기 안전 삭제 요청의 수신에 따라, 상기 제1 파일의 위치를 고정시키기 위해 상기 제1 파일을 락킹하는 단계; 및
    상기 소거 명령에 따라 상기 스토리지 시스템에서의 소거 동작이 완료된 후, 상기 제1 파일에 대한 락킹을 해제하는 단계를 더 구비하는 것을 특징으로 하는 호스트의 동작 방법.
  7. 제1항에 있어서,
    상기 제1 파일의 메타 데이터를 무효화시키기 위한 무효화 명령을 상기 스토리지 시스템으로 제공하는 단계를 더 구비하는 것을 특징으로 하는 호스트의 동작 방법.
  8. 제7항에 있어서,
    상기 메타 데이터에 대한 무효화 명령은, 상기 제1 파일의 메타 데이터에 포함되는 파일명에 임의의 데이터를 오버라이트하기 위한 오버라이트 명령에 해당하는 것을 특징으로 하는 호스트의 동작 방법.
  9. 제1항에 있어서,
    상기 소거 명령은, 상기 제1 파일에 관련된 하나 이상의 무효 데이터를 소거하는 명령에 해당하는 것을 특징으로 하는 호스트의 동작 방법.
  10. 제1항에 있어서,
    상기 소거 명령은, 상기 제1 파일을 포함하는 다수의 파일들에 관련된 다수의 무효 데이터를 함께 소거하는 명령에 해당하는 것을 특징으로 하는 호스트의 동작 방법.
  11. 제1항에 있어서,
    상기 운영 체제 상에서의 삭제 동작을 수행하는 단계는,
    상기 무효화 명령 및 상기 소거 명령에 따라 상기 제1 파일의 정보가 복구 불가능하게 변경된 후에 상기 제1 파일에 대해 삭제 동작을 재차 수행하는 것을 특징으로 하는 호스트의 동작 방법.
  12. 제1항에 있어서,
    상기 스토리지 시스템으로부터 무효 데이터의 소거 진행에 관련된 상태 정보를 수신하는 단계; 및
    상기 상태 정보를 확인한 결과에 따라, 상기 스토리지 시스템의 소거 동작을 비활성화하기 위한 제어 신호를 제공하는 단계를 더 구비하는 것을 특징으로 하는 호스트의 동작 방법.
  13. 스토리지 시스템을 억세스하는 호스트에 있어서,
    안전 삭제에 관련된 프로그램들을 포함하는 안전 삭제 모듈을 저장하는 메모리; 및
    상기 메모리에 연결되어 상기 메모리에 저장된 프로그램들을 실행하며, 제1 파일에 대한 안전 삭제 요청에 응답하여, 상기 호스트 내의 운영 체제 상에서 상기 제1 파일에 대한 삭제 처리가 시작되기 전에 상기 제1 파일의 데이터를 무효화시키기 위한 무효화 명령 및 무효화된 데이터를 물리적으로 소거하기 위한 소거 명령을 상기 스토리지 시스템으로 제공함으로써 상기 제1 파일이 삭제되도록 제어하는 프로세서를 구비하고,
    상기 소거 명령에 의해 상기 제1 파일의 무효 데이터가 물리적으로 소거된 이후에, 상기 제1 파일에 대한 상기 호스트 내의 운영 체제 상에서의 삭제 동작이 수행되는 것을 특징으로 하는 호스트.
  14. 제13항에 있어서,
    상기 안전 삭제 모듈은 호스트 어플리케이션 형태로서 상기 호스트에 설치되는 것을 특징으로 하는 호스트.
  15. 제13항에 있어서,
    데이터 억세스 요청을 상기 스토리지 시스템에 대응하는 메시지로 변환하는 장치 드라이버를 더 구비하고,
    상기 메모리는 상기 장치 드라이버 내에 구비되는 것을 특징으로 하는 호스트.
  16. 호스트와 통신하는 스토리지 시스템에 있어서,
    하나 이상의 파일들의 데이터 및 메타 데이터를 저장하는 메모리 장치; 및
    상기 메모리 장치의 데이터 억세스 동작을 제어하는 컨트롤러를 구비하고,
    제1 파일의 안전 삭제와 관련하여, 상기 호스트의 제어에 따라 상기 제1 파일의 데이터에 대한 무효화 동작 및 상기 제1 파일의 무효 데이터에 대한 물리적인 소거 동작을 포함하는 제1 삭제 동작을 수행하고, 상기 제1 삭제 동작에 의해 상기 제1 파일의 무효 데이터에 대한 물리적인 소거 동작이 완료된 후 상기 제1 파일에 대해 상기 호스트 내의 운영 체제의 제어에 기초하는 제2 삭제 동작을 수행하고,
    제2 파일의 노멀 삭제와 관련하여, 상기 제2 파일의 무효 데이터에 대한 물리적인 소거 동작이 수행되기 전에, 상기 제2 파일에 대해 상기 호스트 내의 운영 체제의 제어에 기초하는 삭제 동작을 수행하는 것을 특징으로 하는 스토리지 시스템.
  17. 제16항에 있어서,
    상기 스토리지 시스템은 상기 제1 삭제 동작 수행을 위한 프로그램들을 포함하는 안전 삭제 모듈을 저장하고,
    상기 스토리지 시스템의 초기 구동시 상기 안전 삭제 모듈을 상기 호스트로 제공하는 것을 특징으로 하는 스토리지 시스템.
  18. 제17항에 있어서,
    상기 제1 삭제 동작은 상기 호스트에 설치된 상기 안전 삭제 모듈의 제어에 기반하여 수행되는 것을 특징으로 하는 스토리지 시스템.
  19. 제16항에 있어서,
    상기 제1 삭제 동작은, 상기 호스트로부터의 언맵 명령에 응답하여 상기 제1 파일의 데이터를 무효화시키거나, 상기 호스트로부터의 오버라이트 명령에 응답하여 상기 제1 파일의 데이터를 무효화시키는 것을 특징으로 하는 스토리지 시스템.
  20. 제16항에 있어서,
    상기 메모리 장치에는 다수 개의 파일들에 관련된 무효 데이터들이 저장되고,
    상기 제1 삭제 동작은, 상기 호스트로부터의 소거 명령에 응답하여 상기 다수 개의 파일들 중 상기 제1 파일을 포함한 적어도 하나의 파일의 무효 데이터를 소거하는 것을 특징으로 하는 스토리지 시스템.
KR1020160094830A 2016-07-26 2016-07-26 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법 KR102545166B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020160094830A KR102545166B1 (ko) 2016-07-26 2016-07-26 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법
US15/483,365 US11106630B2 (en) 2016-07-26 2017-04-10 Host and storage system for securely deleting files and operating method of the host
CN201710259352.2A CN107657185A (zh) 2016-07-26 2017-04-19 用于安全删除文件的主机和存储系统及主机的操作方法
DE102017111883.7A DE102017111883A1 (de) 2016-07-26 2017-05-31 Host und Speichersystem zum sicheren Löschen von Daten und Verfahren zum Betreiben des Hosts
TW106121606A TW201804355A (zh) 2016-07-26 2017-06-28 安全刪除檔案之主機與儲存系統及主機操作方法
US17/376,225 US11657022B2 (en) 2016-07-26 2021-07-15 Host and storage system for securely deleting files and operating method of the host

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160094830A KR102545166B1 (ko) 2016-07-26 2016-07-26 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법

Publications (2)

Publication Number Publication Date
KR20180012061A KR20180012061A (ko) 2018-02-05
KR102545166B1 true KR102545166B1 (ko) 2023-06-19

Family

ID=60951487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160094830A KR102545166B1 (ko) 2016-07-26 2016-07-26 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법

Country Status (5)

Country Link
US (2) US11106630B2 (ko)
KR (1) KR102545166B1 (ko)
CN (1) CN107657185A (ko)
DE (1) DE102017111883A1 (ko)
TW (1) TW201804355A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102271502B1 (ko) * 2017-10-25 2021-07-01 삼성전자주식회사 메모리 장치 및 그 제어 방법
US10922011B2 (en) * 2018-04-12 2021-02-16 Samsung Electronics Co., Ltd. Controllers configured to perform secure deletion, key-value storage devices including said controllers, and methods of operation thereof
US11249919B2 (en) * 2018-07-31 2022-02-15 SK Hynix Inc. Apparatus and method for managing meta data for engagement of plural memory system to store data
KR102170031B1 (ko) * 2018-11-12 2020-10-26 한국과학기술원 위치정보를 이용한 블록체인 거래인증방법, 기록매체 및 블록체인 시스템
US10922010B2 (en) 2019-03-25 2021-02-16 Micron Technology, Inc. Secure data removal
KR20210120240A (ko) * 2020-03-26 2021-10-07 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US20220075523A1 (en) * 2020-09-08 2022-03-10 Qualcomm Incorporated Flash memory local purge
KR20220060397A (ko) * 2020-11-04 2022-05-11 삼성전자주식회사 전자 장치 및 이를 이용한 스토리지 관리 방법
KR20220096013A (ko) 2020-12-30 2022-07-07 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템
US11640375B2 (en) * 2021-06-23 2023-05-02 Vmware, Inc. Avoiding data inconsistency in a file system using 2-level synchronization

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101605156B1 (ko) * 2014-12-11 2016-03-21 네이버비즈니스플랫폼 주식회사 파일 안전 삭제 기능 제공 장치, 방법 및 컴퓨터 프로그램

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991778A (en) * 1997-09-30 1999-11-23 Stratfor Systems, Inc. Method and apparatus for real-time secure file deletion
US6564307B1 (en) * 1999-08-18 2003-05-13 International Business Machines Corporation Method, system, and program for logically erasing data
KR100438696B1 (ko) 2001-04-13 2004-07-05 삼성전자주식회사 홈네트워크 환경에서의 디바이스 제어 시스템 및 방법
US7246209B2 (en) * 2004-11-30 2007-07-17 Kabushiki Kaisha Toshiba System for secure erasing of files
KR100876084B1 (ko) * 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
KR100578143B1 (ko) * 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
JP2007280330A (ja) 2006-04-12 2007-10-25 Matsushita Electric Ind Co Ltd 不揮発性記憶装置および不揮発性記憶システム
US20080010326A1 (en) * 2006-06-15 2008-01-10 Carpenter Troy A Method and system for securely deleting files from a computer storage device
US9189642B2 (en) * 2007-03-14 2015-11-17 Oracle America, Inc. Safe processing of on-demand delete requests
US9141303B2 (en) * 2007-04-19 2015-09-22 International Business Machines Corporation Method for selectively performing a secure data erase to ensure timely erasure
US9098717B2 (en) * 2007-04-19 2015-08-04 International Business Machines Corporation System for selectively performing a secure data erase to ensure timely erasure
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
TWI472916B (zh) 2008-06-02 2015-02-11 A Data Technology Co Ltd 記憶體儲存空間管理方法
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR20110119408A (ko) 2010-04-27 2011-11-02 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
KR101181980B1 (ko) * 2010-09-15 2012-09-11 한국모바일인증 주식회사 보안성을 강화한 데이터 영구 삭제 방법
US8909888B2 (en) 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
EP2631916B1 (en) * 2011-09-06 2015-08-26 Huawei Technologies Co., Ltd. Data deletion method and apparatus
US10048884B2 (en) 2011-12-29 2018-08-14 Memory Technologies Llc Method for erasing data entity in memory module
JP5659178B2 (ja) * 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
US9311501B2 (en) * 2012-03-26 2016-04-12 International Business Machines Corporation Using different secure erase algorithms to erase chunks from a file associated with different security levels
US9003546B2 (en) * 2012-10-18 2015-04-07 Ca, Inc. Secured deletion of information
US9098401B2 (en) * 2012-11-21 2015-08-04 Apple Inc. Fast secure erasure schemes for non-volatile memory
KR20140113103A (ko) 2013-03-15 2014-09-24 삼성전자주식회사 호스트 및 메모리 시스템을 포함하는 사용자 시스템의 동작 방법
CN103458023B (zh) * 2013-08-30 2016-12-28 清华大学 分布式闪存存储系统
US20160300069A1 (en) * 2013-12-04 2016-10-13 Hewlett-Packard Development Company, L.P. Data sanitization
US20150186488A1 (en) * 2013-12-27 2015-07-02 International Business Machines Corporation Asynchronous replication with secure data erasure
JP2016012335A (ja) 2014-06-05 2016-01-21 株式会社Genusion 記憶装置及び記憶装置システム並びに情報端末
US10146782B1 (en) * 2015-06-30 2018-12-04 EMC IP Holding Company LLC Secure erasure of files by a filesystem
US10095423B2 (en) * 2015-09-30 2018-10-09 Toshiba Memory Corporation Storage system that tracks mapping to a memory module to be detached therefrom
US20170220464A1 (en) * 2016-01-28 2017-08-03 Pure Storage, Inc. Efficiently managing encrypted data on a remote backup server
US10452532B2 (en) * 2017-01-12 2019-10-22 Micron Technology, Inc. Directed sanitization of memory
US10854299B2 (en) * 2018-05-31 2020-12-01 Micron Technology, Inc. Data erase operations for a memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101605156B1 (ko) * 2014-12-11 2016-03-21 네이버비즈니스플랫폼 주식회사 파일 안전 삭제 기능 제공 장치, 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
US20180032541A1 (en) 2018-02-01
CN107657185A (zh) 2018-02-02
DE102017111883A1 (de) 2018-02-01
US20210342302A1 (en) 2021-11-04
KR20180012061A (ko) 2018-02-05
US11657022B2 (en) 2023-05-23
US11106630B2 (en) 2021-08-31
TW201804355A (zh) 2018-02-01

Similar Documents

Publication Publication Date Title
KR102545166B1 (ko) 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법
CN107408022B (zh) 管理存储设备中的逻辑地址的数据的先前版本
US10713161B2 (en) Memory system and method for controlling nonvolatile memory
US10324834B2 (en) Storage device managing multi-namespace and method of operating the storage device
KR102148889B1 (ko) 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR102580123B1 (ko) Raid 스토리지 장치 및 그것의 관리 방법
US9946643B2 (en) Memory system and method for controlling nonvolatile memory
US9053007B2 (en) Memory system, controller, and method for controlling memory system
KR100876084B1 (ko) 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
US20170102884A1 (en) Memory scheduling method and method of operating memory system
US20170371573A1 (en) Method of operating storage medium, method of operating host controlling the storage medium, and method of operating user system including the storage medium and the host
KR20110119408A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20200020464A (ko) 데이터 저장 장치 및 그 동작 방법
KR20210029384A (ko) 메모리 컨트롤러 및 그 동작 방법
CN111949206A (zh) 存储器系统、控制器以及控制器的操作方法
CN113849420A (zh) 存储器系统和控制方法
KR20180001990A (ko) 저장 매체의 동작 방법, 저장 매체를 제어하는 호스트의 동작 방법, 및 저장 매체 및 호스트를 포함하는 사용자 시스템의 동작 방법
CN113190469B (zh) 一种存储器、数据写入方法及存储系统
US11314453B2 (en) Memory system managing map data based on risk of malware—infection of host, and operating method thereof
US11520896B2 (en) Storage device
US11657000B2 (en) Controller and memory system including the same
US20220164119A1 (en) Controller, and memory system and data processing system including the same
CN117056125A (zh) 管理数据备份方法、存储器存储装置及存储器控制器
KR20210017401A (ko) 데이터 저장 장치 및 그 동작 방법과, 이를 위한 컨트롤러

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant