본문 바로가기

TIP&TECHNICAL

USB 하드웨어 안전하게 제거하기 (USB 안전제거)는 꼭 해야 하는건가?

예전에 이걸로 커뮤니티가 시끌시끌거렸습니다만, 심심한데다가 또 관련 글을 봐서 포스팅도 늘릴겸 끄적끄적해 봅니다. 본문 전에 한가지 질문하나 하겠습니다. USB 안전제거는 USB가 고장나지 않도록 하는 기능인가요? 그렇다고 답하면, USB 안전제거에 대해 잘못 알고 계신겁니다.

 

 

 

 

Windows등에서 제공하는 USB 장치의 안전제거의 실제 작동 방식은, 안전하게 제거를 클릭했을때 해당 장치와 컴퓨터간에 통신을 하고 있는지, 해당 USB 장치에 있는 캐쉬에 데이터가 아직 남아있고 쓰기 대기중인지 확인한 후, 그렇지 않다면 더이상 해당 장치와 컴퓨터간의 통신을 허용하지 않는 겁니다. 즉, 데이터를 전송하였을때 다소 느린 USB 장치에 있는 캐쉬에 담겨진 데이터가 모두 기록이 되기 전 제거가 됬을때의 손상을 방지하기 위해 생겨난 기능이므로, USB장치의 안전성 자체에는 그냥 제거나 안전제거나 별 차이 없습니다.

 

 

 

 

즉, 앞에 설명에서 알 수 있듯이 데이터 유실을 방지하기 위해 쓰기 캐쉬가 활성화 된 상태에서는 하드웨어 안전하게 제거를 해야지만 좋은 방법이다. 라고 이야기를 하고 싶은건데, 일반적으로 USB 이동식 디스크로 인식되는 장치들의 쓰기 정책 기본값은, 캐쉬 사용 안함 입니다. 즉, 일반적인 상황에서는 하드웨어 안전하게 제거하기를 사용할 이유가 없다는 것입니다. 물론 이 경우는 어디까지나 USB 이동식 디스크(별다른 외부 전원이 없는 플래시 메모리)에서만 해당하는 이야기입니다.(이것에 관해서는 뒤에서 계속 이어갑니다.)

 

그런데 간혹 이런 반응들을 목격할 수 있습니다. 안전 제거를 해야지 오래 쓸 수 있다고, 데이터가 한번에 날라가는게 방지된다고, USB 메모리가 고장나지 않는다고,,, 그런데 말입니다. USB 메모리의 열에 아홉은 전원 불안정등으로 인한 컨트룰러 고장입니다. 메인보드나 파워서플라이의 불량이 아니고서야 USB의 5V가 불안정하지는 않을 거지만, USB의 삽입과 제거도중에 생기는 접촉 불안정으로 전원이 불안정해 질 수 있다는것입니다. 더욱이 안전제거의 경우 데이터 전송만 간섭하지, 전원은 간섭하지 않습니다. 전원 차단은 안전제거가 하지 않는다는 소리입니다. 다시말하면, USB 메모리의 고장은 하드웨어 안전 제거와는 관계가 없어요.

 

 

 

 

 

그렇다고, 모든 장치를 그냥 제거해도 되는가? 에서는 또 할 말이 많아져요. 앞에서 이야기 했듯이 쓰기 캐쉬 사용 안함이 기본값인 장치들은 외부전원이 없는 단독형의 플래시 메모리들만 입니다. USB 장치들이 많이 있지요. 외부에서 전원 공급이 된다는 가정하에 작동하는 스마트폰이라던지 MP3P등의 장비들은 기본값이 쓰기 캐쉬 사용함 입니다. 외부 전원이 있거나 빠른 성능을 위해서 이런 장비들은 기본값이 다르죠. 쓰기 캐쉬를 사용할 경우, 데이터 전송 후 바로 제거할 때 캐쉬에 아직 데이터가 남아 있고 전송 대기중인데 장치가 제거되었으므로 데이터 손실의 위험이 있습니다. 따라서 이런 장비들은 하드웨어 안전 제거를 해 주는게 좋겠지요. 아래는 디스크 관리 도움말 중 쓰기 캐싱 정책 에서 발취한 내용입니다.

응용 프로그램과 저장 장치 간의 경로 중 어느 위치에서든 쓰기 캐싱을 사용하는 시스템은 안정적이어야 하며 정전 가능성이 없어야 합니다. 시스템에 연결된 장치에서 쓰기 캐싱을 사용하는 경우, 장치의 캐싱 알고리즘은 캐싱이 작동하고 캐시 내외부로 데이터가 이동할 수 있도록 전원이 계속 공급된다는 가정하에 설계됩니다

 

단, 위에서 오해할 부분이 캐쉬 사용이 기본값인 장치들은 결국은 안전제거를 통해서 제거하는게 좋다, 일 뿐이지, 그냥 제거하면 고장난다! 라는 건 또 아니라는겁니다. 캐쉬 사용이 기본값인 장치들은 자체적으로 캐쉬를 가지고 있고, 파일을 관리할 수 있는 별도의 프로세스가 있으며, 자체적으로 전원 공급이 되는 장치입니다.

 

그로인해 데이터를 전송하던 중 안전제거를 하지 않고 장치를 제거한다 해도 해당 장치의 메모리의 데이터들이 모두 날아가거나 손상이 일어나기 전에 자체적으로 데이터를 교정해 문제가 발생하지 않도록 하고 있습니다. 즉, 고장이 일어날 확률은 거히 없다라고 보시는것이 맞습니다.

 

 

 

 

정리하겠습니다. 하드웨어 안전 제거는 어디까지나 데이터의 손실을 방지하기 위한 기능이지 장치의 안전을 위한 기능은 아닙니다. 더욱이, 일반적인 상황일때 안전제거는 별다른 이익이 없습니다. 하드웨어 안전 제거는 일부 외장장치에서 효과가 있습니다. 하드웨어 안전 제거를 했거나 안했거나 USB 메모리가 고장날 확률은 똑같습니다.(고장의 원인은 어디까지나 불안정한 전원으로 인한 컨트룰러 데미지입니다.)

 

이상입니다.

 

 

 

포스팅 이후, 조금 수정하였습니다. 우선 USB 외장하드는 기본값이 사용 안함 이었습니다. 또한 극 일부 장치들만 캐쉬 사용이 기본값이었던 만큼, 결국 전혀 신경쓰지 않아도 됩니다. 그리고 해당 부분에 오해의 소지가 있어 수정하였습니다.