본문 바로가기
Linux

디스크 dd Copy를 이용한 Backup 방법

by 씨엔아이소프트 2017. 9. 6.
반응형

디스크 dd Copy를 이용한 Backup 방법


1. 개요

  해당 글은 리눅스 상에서 디스크 대 디스크를 백업하는 방법에 대한 내용이다.

  흔히 dd카피라고 부르는 방법이며 이 방법의 제약 사항은 아래와 같다.

  1) 디스크의 용량이 같아야 한다.

  2) 일부 시스템의 경우 원본 디스크가 장착 된 시스템의 기종과 복사 디스크가 장착 될 시스템의 기종이 같아야 한다. 

  3) 원본 디스크의 filesystem에 문제가 있을 시 dd카피를 통해 백업을 하면 문제가 있는 filesystem의 내용도 copy 된다.


2. 작업 내용

   2.1 시스템 종료 및 디스크 장착

          시스템을 절차에 따라 종료하고 복사할 디스크를 장착한다.

          시스템 부팅


   2.2 운영체제 선택

          가장 권장하는 작업 환경은 rescue 모드를 통해 부팅한 운영체제에서 작업하는 방법을 추천하나, 상황이 여의치 않을 경우에는 디스크에 이미 설치된 운영체제로 부팅해도 된다.

          복사 작업을 진행하기 전 되도록이면 DB 및 APP를 종료하고 시스템에 운영체제만 올라와 있는 상태로 작업하는 것을 권장한다.

   

   2.3 디스크 식별 및 dd명령 수행

         2.3.1 디스크 식별

         터미널을 열고 #fdisk -l 을 입력 >> 리눅스의 경우 SCSI 디스크는 /dev/sd* 로 인식하고 IDE 디스크는 /dev/hd* 과 같이 인식한다. 

         

 Disk /dev/sda: 73.4 GB, 73407865856 bytes

255 heads, 63 sectors/track, 8924 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        5235    41945715   83  Linux

/dev/sda3            5236        6540    10482412+  82  Linux swap / Solaris

/dev/sda4            6541        8924    19149480   83  Linux


Disk /dev/sdb: 73.4 GB, 73407865856 bytes

255 heads, 63 sectors/track, 8924 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1   *           1          13      104391   83  Linux

/dev/sdb2              14        5235    41945715   83  Linux

/dev/sdb3            5236        6540    10482412+  82  Linux swap / Solaris

/dev/sdb4            6541        8924    19149480   83  Linux


        위의 로그를 보면 /dev/sda가 원본 디스크고 /dev/sdb가 복사할 디스크가 출력되는 것으로 보아 정상적으로 인식했다.


         2.3.2 디스크 사용량 확인

          # df -lh

 Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              39G  7.4G   30G  21% /

/dev/sda1              99M   14M   81M  15% /boot

tmpfs                 442M     0  442M   0% /dev/shm

/dev/sda4              18G  2.2G   15G  13% /home


          사용량을 보고 대략 적인 작업 소요시간을 예측할 수 있다.

          

         2.3.2 dd 명령 수행

          # dd if=/dev/s of=/dev/rdsk/c1t0d0s2 bs=512k

             if: 입력 디바이스 (OS 원본 디스크의 장치명)

             of: 출력 디바이스 (복제 디스크의 장치명)

             bs: 블럭 사이즈 ( 128k, 512k등 : 블럭단위가 클수록 복제 속도가 빠르나 이는 디스크의 IO에 달렸다. rescue 모드로 부팅했을 시에는 bs=4096 을 줘도 시스템 부하에 큰 무리는 없다.)

     

    2.4 작업 진행 Monitoring 방법

          # iostat -d 1 10

             위의 명령을 이용하면 1초에 한번씩 디스크 사용량을 10번 출력한다. 

Linux 2.6.18-164.el5 (V20Z)     2014년 01월 19일


Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

sda               1.11         1.22        17.45    6794290   96928772

sda1              0.00         0.00         0.00       9966        260

sda2              1.10         1.07        17.44    5951129   96891064

sda3              0.00         0.00         0.00       1117        184

sda4              0.00         0.15         0.01     831140      37264

sdb               0.00         0.00         0.00       5184          0

sdb1              0.00         0.00         0.00        828          0

sdb2              0.00         0.00         0.00        828          0

sdb3              0.00         0.00         0.00        834          0

sdb4              0.00         0.00         0.00        848          0 


          Blk_read/s, Blk_wrtn/s 을 확인하면 각각 부하가 얼만큼 주어지고 있는지 확인 할 수 있다.


    2.5 작업 완료

            작업이 완료 되면 위의  # dd if=/dev/s of=/dev/rdsk/c1t0d0s2 bs=512k 명령을 입력했던 터미널이 #프롬프트로 떨어질 것이다.

            

            복사된 디스크를 원본 디스크의 슬롯에 장착해서 부팅할 경우에는 별도의 작업이 필요 없다.


            복사된 디스크를 현재 위치에서 사용하고자 할 경우 별도의 작업이 필요하다.

            # mkdir /a

            # mount /dev/sdb* /a        >> (sdb* *부분은 df -lh를 입력했을 경우 / 파티션에 해당하는 숫자를 주면 된다. 아래 로그를 참조하면 원본디스크의 sda2가 / 디렉토리이므로 복사된 sdb의 2번 

              즉, sdb2가 / 디렉토리가  위치하는 파티션일 것이다.)

 Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              39G  7.4G   30G  21% /


# vi /a/etc/fstab 

 vi를 통해 fstab을 열어 /dev/sda로 시작하는 부분을 /dev/sdb로 모두 바꿔 준다.

/dev/sda2               /                       ext3    defaults        1 1

/dev/sda4               /home                   ext3    defaults        1 2

/dev/sda1               /boot                   ext3    defaults        1 2

#/dev/sdc1              /FemtoImages            ext4    defaults        1 2

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/sda3               swap                    swap    defaults        0 0 

>>

/dev/sdb2               /                       ext3    defaults        1 1

/dev/sdb4               /home                   ext3    defaults        1 2

/dev/sdb1               /boot                   ext3    defaults        1 2

#/dev/sdc1              /FemtoImages            ext4    defaults        1 2

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

/dev/sdb3               swap                    swap    defaults        0 0 


위의 작업을 마치면 모든 작업이 종료된다. 


반응형

댓글