고 가용성을 위해 tar 및 rsync 사용


13

우분투 클라우드 서버가 실행 중이며 ssh에 직접 액세스 할 수는 없습니다. 'tar'를 사용하여이 서버를 복제하거나 고 가용성을 갖습니다. 링크 [링크 텍스트] [1]에서 튜토리얼을 따랐습니다. 동일한 버전의 새 서버를 설치하려고 시도했습니다. 대상 (신규)에서 tar (tar -xvpzf ~ / clone.tgz -C /)를 추출하면 결국 아래와 비슷한 출력으로 끝납니다 (오류인지 알 수 없음).

tar: var/run: time stamp 2010-11-09 17:09:11 is 7335.159880406 s in the future
tar: var/spool/postfix/usr/lib/zoneinfo: time stamp 2010-11-09 17:08:26 is 7290.159730037 s in the future
tar: var/lib: time stamp 2010-11-09 17:27:51 is 8455.159349527 s in the future
tar: usr/bin: time stamp 2010-11-09 17:28:02 is 8466.159254097 s in the future
tar: usr/share/sgml: time stamp 2010-11-09 17:27:47 is 8451.158909506 s in the future
tar: usr/share/man/man7: time stamp 2010-11-09 17:27:50 is 8454.158393583 s in the future
tar: usr/share/man/man1: time stamp 2010-11-09 17:28:02 is 8466.158166556 s in the future
tar: usr/share/man/man8: time stamp 2010-11-09 17:27:51 is 8455.158057701 s in the  future
tar: usr/share/omf/time-admin: time stamp 2010-11-09 17:27:52 is 8456.157830449 s in the future
---------------------------------------------
---------------------------------------------
---------------------------------------------

다음 명령을 사용하여 소스 시스템에서 지정된 디렉토리의 tar 파일을 만듭니다.

tar -cvzf ~/clone.tgz --exclude ~/clone.tgz --exclude /etc/hosts --exclude /etc/hostname --exclude /etc/udev/ --exclude /etc/network/interfaces --exclude /etc/resolv.conf  /etc /home /opt /tmp /usr /var /mnt
  • tar를 사용하기 전에주의 사항이 있습니까? (타르는 한 번 만든 다음 rsync를 사용합니다)
  • bin 또는 lib와 같은 디렉토리를 더 포함해야합니까? -나에게 제안
  • 디렉토리를 제외해야합니까? 네트워크 장치 (eth0) 문제가있는 것처럼 (eth0을 시작하지 못했습니다). 위의 명령에서 나는 "/ etc / udev /"를 제외 시켰고이 후에 나는 이것이 괜찮다고 느꼈다. 이와 같이 / etc / 또는 포함 된 디렉토리에서 제외해야 할 것이 있습니까? -제발
  • ssh 조합으로 rsync (증분 bkp)를 예약하여 디렉토리 (tar로 지정)를 원격 위치 (예 : / mnt / newdir)와 동기화하여 나중에 시스템 장애가 발생했을 때 tar를 풀고 추출 할 수 있습니다. Rsync는 루트 사용자로 실행되도록 예약 할 수 있지만 ssh는 암호를 묻는 메시지를 표시합니다. 참고로 sudo는 완전히 비활성화되어 있으며 루트에 대한 ssh 직접 로그인도 비활성화되어 있습니다.

이것을 달성하기 위해 서버에 해를 끼치 지 않는 더 좋은 방법이 있다면 제안 할 수 있습니다.

[1] : http://ubuntuforums.org/showthread.php ? t = 525660

답변:


9

대신 rsync를 사용하는 것이 좋습니다. 임시 파일이 없어도 실제 시스템에서 시스템 간 동기화를 수행 할 수 있습니다. 또한 복제본을 업데이트해야 할 때 증분 업데이트를 수행 할 수있는 이점도 제공합니다.

/ proc / / sys / dev / tmp / mnt 복제 시스템에서만 / etc / fstab 및 /boot/grub/grub.cfg가 복제 시스템 파티션의 UUID로 업데이트되어 있는지 확인해야합니다.

mysql과 같은 데이터베이스가있는 경우 복사를 수행하기 전에주의해서 DB를 중지해야합니다.


네, '/ etc / fstab'과 '/boot/gru/grub.cfg'를 제외해야한다고 생각합니다. 이게 좋은가요? 지정된 디렉토리의 rsync 증분 동기화 명령을 배치하십시오.
user3215

물론 /boot/grub/grub.cfg는 포함되어 있지 않습니다
user3215

복제 시스템의 UUID를 어떻게 업데이트합니까?
user3215

fstab 및 grub 구성의 원래 파티션에서 UUID를 복제 시스템 파티션의 UUID로 바꿔야합니다. 다음과 같이 파티션 ID를 나열 할 수 있습니다 : blkid.
João Pinto

UUID는 두 시스템에서 동일해야합니다.
user3215

6

우선, 많은 IaaS 클라우드 공급자는이를 쉽게 해결하는 강력한 스냅 샷 기능을 제공합니다.

EC2에서 EBS 기반 시스템을 실행하는 경우 주기적으로 시스템을 스냅 샷 할 수 있습니다. 소스 인스턴스에 문제가 발생하면 완전히 새로운 인스턴스에서 이전 스냅 샷으로 롤백 할 수 있습니다. 스냅 샷을 아카이브하려면 연결된 인스턴스가있는 다른 인스턴스를 부팅하고 프로덕션 상자에 부정적인 영향을 미치지 않으면 서 tar + s3과 같은 것을 사용할 수 있습니다.

이 방법에는 현재 명백하지 않은 많은 문제가 있습니다.

  1. 당신은 하나의 기술에 자신을 고정하고 있습니다. Ubuntu 10.10에서이 작업을 수행하고 11.04로 이동하려면 소스 시스템을 업그레이드 한 다음 다시 스냅 샷해야합니다. 마찬가지로 EC2의 EBS 스냅 샷을 사용하는 경우 랙 공간 클라우드로 이동하면 새로운 솔루션이 필요합니다.
  2. rsync를 사용하면 변경 기록이 없습니다. 시스템 1에서 무언가를 수정하면 문제가 발생하여 재 동기화 할 때 백업 시스템도 손상 될 수 있습니다.
  3. Rsync는 프로덕션 시스템에 큰 영향을 줄 수 있습니다.

실제로 원하는 것은 구성 관리 시스템과 데이터 고 가용성입니다.

꼭두각시 (주로!), 요리사 또는 cfengine과 같은 구성 관리 시스템을 선택하는 것이 좋습니다. 구성 관리 시스템에서 모든 구성을 시작한 다음 일반 시스템을 부팅하고 구성 관리를 적용 할 수 있습니다. 'etckeeper'에 추가하면 역사가 있습니다.

데이터 고 가용성의 경우 rsync가 작동해야하며 원하는 데이터를 복사하기 만하면 훨씬 간단합니다. 또한 "네트워크 RAID1"에 해당하는 drbd가 있습니다. 복구 호스트에 동기화하지 않고 기록 장치 스냅 샷 (블록 장치 스냅 샷 또는 tar와 같은 것)을 포함해야하는 데이터 백업을 대체하지는 않습니다. 저기요?)


2

새 서버 시계가 이전 시계보다 시간이 오래 걸리기 때문에 메시지가 발생할 수 있습니다.

패키지 관리자 구성 및 데이터베이스를 복제하는 경우 (그리고 사용자가있는 경우) / bin, / sbin 및 / lib를 복제해야합니다. 그렇지 않으면 대상 시스템의 상태가 일치하지 않습니다. 또 다른 방법은 /etc/dpkg.info / etc / apt / var / lib / apt 및 / var / lib / dpkg를 제외하고 대상 시스템의 모든 패키지를 다시 설치하는 것입니다.

/ var / dpkg 및 / var / apt의 파일에는 시스템에 설치된 내용에 대한 정보가 포함되어 있습니다. 이를 제외하지 않으면 패키지 관리자는 상위 시스템의 모든 프로그램 및 종속성이 대상에 설치되어 있다고 생각합니다. 그러나 / bin, / sbin 등을 복사하지 않으면 복사되지 않습니다. 다음에 설치하거나 업데이트 할 때 문제가 발생할 가능성이 큽니다.

그런 다음 rsync와 동기화를 유지하기 위해 항상 암호가 아닌 인증서 기반 인증을 사용했습니다. 설정이 매우 쉽습니다. 맨 페이지를 처음 읽은 것을 기억합니다. 더 많은 정보를 원한다면 여기 에 새로운 질문이 필요하다고 생각 되는 빠른 안내서 입니다.


/ var는 제외되지 않습니다. "--exclude /etc/resolv.conf"다음의 위 명령에서 모든 내용은 /etc/..../var / mnt에 포함됩니다. 실제로 resolv.conf와 / etc 사이에 두 개의 공백을 지정했습니다. 여기에 표시되지 않습니다.
user3215

죄송합니다 링크 부분을 잊어 버렸습니다
user3215

좋아, bin, sbin 및 lib도 포함시켜야합니다. 여기에 좋습니다. 아 .. 나는 그것들을 배제하고 모든 패키지를 설치해야한다.
user3215

/etc/dpkg.info / etc / apt / var / lib / apt 및 / var / lib / dpkg ..를 제외해야합니까?
user3215

답변이 업데이트되었습니다.
Javier Rivera
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.