Amazon EC2 ext4 EBS 볼륨을 XFS 파일 시스템으로 변환


8

일관된 스냅 샷을 찍어 S3로 보낼 수 있도록 Amazon EC2 ext4 파일 시스템을 XFS 시스템으로 변환해야합니다. us-east에서 i686 아키텍처와 함께 우분투 서버 10.10의 사용자 정의 작은 이미지를 사용하고 있습니다. 문제는 모든 파일에 대해 하나의 EBS 드라이브 만 사용하고 있으며 이제 ssh에서 인스턴스에 로그인 할 때 드라이브에서 마운트를 해제하거나 포맷하거나 실제로 아무것도 할 수 없기 때문에 두통을 겪고 있다는 것입니다. 내 생각에 어떻게 든 EBS 볼륨을 2로 나누고 / var / www 및 / var / lib를 두 번째 EBS 볼륨으로 이동하고 대신 XFS로 변환해야합니다. apache2, mysql, ispconfig, bind, postfix, courier, pureftp를 사용하고 있습니다 ( http://www.howtoforge.com/perfect-server-ubuntu-10.10-maverick-meerkat-ispconfig-3 )

감사합니다.

답변:


9

루트 볼륨을 XFS로 변환하거나 두 번째 볼륨을 생성 할 수 있습니다. 개인적으로 후자는 유연성이 뛰어나므로 후자를 선호합니다.

옵션 1 : 루트 볼륨을 XFS로 변환

  1. 인스턴스 중지 (종료하지 않음) (인스턴스 A라고 함)
  2. 새 인스턴스를 시작하십시오 (인스턴스 B라고 함).
  3. 인스턴스 A에서 루트 볼륨을 분리하여 인스턴스 B에 연결하십시오.
  4. 두 번째 EBS 볼륨을 생성하여 인스턴스 B에 연결
  5. 새 EBS 볼륨을 XFS로 포맷하십시오 ( xfsprogs아직 설치 하지 않은 경우 설치 ).
  6. 새로운 일에 첫 번째 볼륨의 모든 데이터를 복사 (예를 들어, 사용 rsync -aHAXxSP /source /target)
  7. 인스턴스 B에서 새 볼륨을 분리하고 인스턴스 A의 루트 볼륨으로 연결하십시오.
  8. 인스턴스 A 시작
  9. 인스턴스 B를 종료하십시오 (원래 루트 볼륨이 지속되어야하며 원하는대로 작동 할 때까지 유지하십시오).

루트 볼륨을 다른 인스턴스에 연결하는 이유는 사용중인 볼륨으로는 어려울 수있는 일관성을 유지하기위한 것입니다.

옵션 2 : 두 번째 EBS 볼륨으로 데이터 이동

  1. 두 번째 EBS 볼륨을 생성하여 인스턴스에 연결하십시오. XFS로 포맷하고 마운트
  2. 새 볼륨으로 이동할 디렉토리를 식별하십시오 (일부 고려 사항 : / var / log, / var / lib / mysql, / var / www, / var / spool / mail, / var / vmail)
  3. 쓰기 잠금을 제거하기 위해 가능한 많은 서비스를 중지하십시오
  4. lsof | grep /path/to/dir남은 쓰기 잠금을 확인하는 데 사용
  5. 디렉토리를 새 EBS 볼륨으로 이동
  6. 마운트가 이전 위치에 새 디렉토리를 바인딩 (예 mount -o bind /mnt/path/to/dir /orig/path/to/dir)
  7. 각 디렉토리마다 반복
  8. 모든 것이 작동하도록 서비스를 시작하십시오
  9. /etc/fstab마운트 포인트를 영구적으로 만들 려면 파일을 편집하십시오 . 예 :/mnt/path/to/dir /orig/path/to/dir bind defaults,noatime,bind 0 0

모든 것이 지속되고 제대로 작동하도록 다시 시작하십시오. 루트 볼륨을 약간 줄이려고 할 수도 있는데, 그 이유는 루트에서 모든 데이터를 제거하여 루트 볼륨을 크게 늘리거나 변경하지 않아야하기 때문입니다.

참고로 fsfreeze,에 포함 된를 사용하여 ext4 파일 시스템을 고정 할 수 있습니다 util-linux-ng.


고마워, 나는 두 번째 방법으로 백업에서 복원 할 수 있는지 확실하지 않기 때문에 첫 번째 옵션을 사용할 것입니다.
jaz

각 EBS 볼륨을 독립적으로 복원 할 수 있습니다. 두 볼륨의 스냅 샷을 별도로 유지하여 필요한 볼륨을 복원 할 수 있습니다. Amazon의 EBS 스냅 샷은 차등 및 압축되므로 사용되는 총 공간은 하나가 아닌 두 볼륨의 데이터와 크게 다르지 않아야합니다.
cyberx86

1
옵션 1의 경우 : "cloudimg-rootfs"레이블이 XFS에 비해 너무 길기 때문에 최근 우분투 버전이 부팅되지 않습니다. 사용하는 레이블을 줄여서이 문제를 해결해야합니다. 아래 링크에서이 단계를 수행하십시오. / dev / xvdf 장치를 '/'로 레이블하십시오. xfs_admin -L \ / / dev / xvdf / xfs 디렉토리에 / dev / xvdf를 마운트하십시오. 새 XFS 볼륨 (/ xfs / etc / fstab)과 관련된 fstab 파일을 편집하고 /가 레이블이 지정된 볼륨과 /이고 xfs 파일 시스템이 루트 마운트 포인트에 대해 구성되어 있는지 확인하십시오. 여기에서 : jsianes.blogspot.com/2014/06/…
JaredBroad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.