강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

sync작업! 그 의미를 파악하는 것이 더 중요하다.

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

sync작업! 그 의미를 파악하는 것이 더 중요하다.

 

 

 

 

 

시스템관리작업을 위하여 모니터를 보고있는 이 순간 우리의 작업대상이 되는 데이터는 전부 시스템 메모리에서 그 작업이 이루어진다.

 

 

 

 작업의 대상이 되는 데이터는 메모리에 존재하기 때문에 저장하지 않는한 디스크에 저장되지 않는다.

 

 

 

 작업하고 있는 도중에 갑자기 전원이 나가거나 장애로 인하여 시스템이 다운되었다면 작업중이던 메모리의 데이터들은 모두 사라져버릴 것이다.

 

 

 

 

 

 , 저장되지 않은 데이터는 모두 잃어버린다는 의미이다.

 

 

 

 

 

 

 

이런 재앙(?)을 방지하기 위하여 워드프로세스와 같은 OA용 소프트웨어들에는 자동저장이라는 기능이있어서 사용자가 작업하고 있는 중간에 주기적으로 자동저장해 준다.

 

 

 

 사용자가 작업중이던 데이터를 메모리에서 디스크로 저장하는 작업을 프로그램이 주기적이면서 자동으로 해주는 것이 바로 자동저장이라는 기능이다.

 

 

 

 

 

 그리고 이런 저장작업을 우리는 데이터동기화라고 한다.

 

 

 

 

 

 

 데이터동기화란 경우에 따라서 여러가지 의미가 있는데 여기서는 저장되지 않은 메모리의 데이터를 디스크로 저장하는 작업을 의미한다.

 

 

 

 

 

 

 

 

그렇다면 현재 우리가 사용하고 있는 리눅스시스템에서의 여러가지 시스템관리작업은 어떠할까? 시스템관리작업이라는 것이 워드프로세스와 같은 OA용 프로그램도 아니고, 특별히 하나의 프로그램만을 사용하는 것도 아니며 여러가지 작업을 하지만 자동저장을 하도록 특별한 장치를 마련하기는 다소 어렵다고 할 수 있다.

 

 

 

 

 

 시스템 관리작업이라는 것이 하나의 프로그램이 주관하는 일괄적인 작업이 아니기 때문이다.

 

 

 

 

 

 

 

, 그럼 결론적으로 리눅스시스템에서 이루어지는 이러한 데이터 저장작업 즉, 데이터동기화작업은 시스템관리자가 해주어야 한다.

 

 

 

 

 

 

 , 현재 작업중인 저장되지 않은 메모리의 데이터를 디스크로 저장하는 작업은 시스템관리자가 직접해주어야 한다는 것이다.

 

 

 

 

 

 이런 작업을 우리는 sync작업이라고 한다.

 

 

 

 

 

 

 아주 간단하다.

 

 

 

 다음 예를 보라.

 

[root@sulinux ~]#sync

[root@sulinux ~]#

[root@sulinux ~]#sync

[root@sulinux ~]#

 

결론만 말하자면 시스템관리 도중에 한번씩 위와 같이 sync를 실행해주면 아직 저장되지 않은 메모리의 데이터가 디스크로 저장되는 데이터동기화작업이 된다는 것을 말하고 있다.

 

 

 

 

 

 

 

, 이번 절의 제목을 보면 “sync작업! 그 의미를 파악하는 것이 더 중요하다.

 

 

 

라고 되어 있다.

 

 

 

 

 

 대학을 졸업하고 13년이상 시스템관리자로 실제 업무를 하면서 느낀 것이 이것이다.

 

 

 

 

 

 실제 sync작업을 하는 것은 매우 쉽다.

 

 

 

 그냥 sync라고 실행만 하면 되므로 누구나 쉽게 실행할 수 있다.

 

 

 

 

 

 하지만, sync작업을 왜하는지? sync작업을 언제 해야하는지? sync작업을 하면 데이터동기화가 어떻게 이루어지는지? 등에 대해서 이해하는 것이 중요하다는 것을 필자는 강조하고 있는 것이다.

 

 

 

 

 

 

 

간단하게 정리하면 디스크에 저장되어 있지 않은 메모리 버퍼의 데이터를 디스크에 저장하는 sync 작업이라고 할 수 있다.

 

 

 

 

 

 , 시스템의 버퍼(메모리의 일부가 버퍼(buffer)로 사용됨)에 있는 데이터를 디스크에 저장하는  명령어이다.

 

 

 

 

 

  ,  아직 디스크에 저장이 되지 않은 상태로 버퍼에 남아있는 데이터들은 갑자기 전원이 나가거나 시스템이 종료되었을 때에 데이터를 잃어버리게 되는 결과를 초래할 수 있다.

 

 

 

 

 

  sync명령어는 버퍼에 존재하는 이런 데이터를 디스크에 저장하여  유실되는 데이터가 없도록 디스크동기화를 위한 명령어이다.

 

 

 

 

 

  재부팅(reboot)이나 시스템종료(shutdown)등의 명령어 등으로 시스템을 종료할 때에 종료과정에서 sync명령어가 자동으로 실행되는 이유도 여기에 있다.

 

 

 

 

 

 

 

조금만 더 부연설명을 해보자. 시스템이 이와 같이 연산작업과정에서 디스크를 이용하지 않고 메모리를 이용하는 것은 시스템의 속도 때문이다.

 

 

 

 

 

 디스크의 Access(읽기쓰기, read/write)속도에 비해 현저하게 빠른 메모리를 이용함으로써 연산속도를 증가시켜 전체적인 시스템 성능을 향상시키기 위함이다.

 

 

 

 

 

 하지만 디스크에 저장되지 않은 데이터(, 휘발성메모리인 RAM에 저장된 데이터)는 비정상적인 시스템종료나 갑작스럽게 전원이 나갔을 때에 데이터를 잃어버리게 된다.

 

 

 

 

 

 이런 이유로 메모리의 데이터를 디스크에 저장하는 sync작업이 필요한 것이다.

 

 

 

 

 

  , sync작업을 간단히 표현하자면 "메모리의 데이터를 디스크에 저장하여 동기화시키는 작업"이라고 할 수 있다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,076 명
  • 현재 강좌수 :  36,001 개
  • 현재 접속자 :  443 명