FreeBSD 암호화된 zfs 미러 - 암호화된 스왑을 포함하여 실패한 드라이브 교체

FreeBSD 암호화된 zfs 미러 - 암호화된 스왑을 포함하여 실패한 드라이브 교체

GELI 암호화를 사용하는 ZFS 이미지에 3개의 물리적 드라이브가 있는 FreeBSD 11 시스템이 있습니다. 이 모든 것은 기본적으로 내가 기계를 처음 만들 때 FreeBSD 설치 프로그램에 의해 마법처럼 설정되었기 때문에 그것에 대한 입력이나 세부 사항에 대한 지식이 거의 없었습니다.

SMART가 드라이브 중 하나에서 일부 오류를 보고하기 시작했습니다. 아직 죽지는 않았지만 미러에 새 드라이브를 추가한 다음 실제로 실패하기 전에 이전 드라이브를 제거하고 싶습니다. 인터넷 검색을 통해 대부분의 작업을 완료하는 방법을 알 수 있을 것 같지만, 잘못한 일이나 누락된 부분이 없는지 확인하기 위해 모든 작업을 실행하고 싶습니다. 그리고 좀 더 구체적으로 교환 부분에 대해서는 잘 모르겠습니다(암호화되어 있기도 합니다).

현재 세 개의 드라이브(ada0, ada1, ada2)는 각각 다음과 같습니다 gpart show.

=>        40  1953525088  ada0  GPT  (932G)
          40        1024     1  freebsd-boot  (512K)
        1064         984        - free -  (492K)
        2048    50331648     2  freebsd-swap  (24G)
    50333696  1903190016     3  freebsd-zfs  (908G)
  1953523712        1416        - free -  (708K)

zpool status:

  pool: zroot
 state: ONLINE
  scan: scrub repaired 0 in 2h7m with 0 errors on Mon Feb 20 14:43:08 2017
config:

    NAME            STATE     READ WRITE CKSUM
    zroot           ONLINE       0     0     0
      mirror-0      ONLINE       0     0     0
        ada0p3.eli  ONLINE       0     0     0
        ada1p3.eli  ONLINE       0     0     0
        ada2p3.eli  ONLINE       0     0     0

/etc/fstab:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/mirror/swap.eli            none    swap    sw              0       0

swapinfo:

Device          1K-blocks     Used    Avail Capacity
/dev/mirror/swap.eli  25165820   142220 25023600     1%

gmirror status:

       Name    Status  Components
mirror/swap  COMPLETE  ada0p2 (ACTIVE)
                       ada1p2 (ACTIVE)
                       ada2p2 (ACTIVE)

그래서 저는 다음과 같이 하겠다고 생각했습니다.

(1) 새 드라이브를 물리적으로 설치합니다.

(2) SMART 검사를 하거나 임의의 데이터로 채울 수도 있습니다.

(3) gpart destroy, gpart create및 , 기본적으로 다른 드라이브 표시(boot, free, swap, zfs, free)와 동일한 레이아웃을 gpart add만듭니다 . gpart show한 가지 차이점은 고장난 드라이브를 점진적으로 교체하면서 자연스럽게 풀에 더 많은 공간이 생기도록 의도적으로 더 큰 드라이브를 구입했다는 것입니다. 그래서 freebsd-zfs 파티션을 기존 드라이브에 있는 파티션보다 더 크게 만들었습니다. 비록 현재의 모든 작은 드라이브를 모두 교체할 때까지는 대부분의 파티션을 사용할 수 없을 것입니다(맞죠?). 향후 드라이브의 드라이브 크기가 약간 다를 수 있다는 점을 고려하여 마지막에 중요한 여유 공간을 남겨두어야 합니다(맞죠?).

(4) geli initfreebsd-zfs 파티션. 구체적인 문제는 다음과 같습니다.이제 세 개의 물리적 드라이브 모두 동일한 GELI 비밀번호를 가지고 있습니다. 머신이 부팅되면 각 드라이브에 비밀번호를 입력하는 대신 비밀번호만 입력하라는 메시지가 표시됩니다. 나는 이것을 좋아한다. 새 드라이브에 동일한 비밀번호를 다시 사용하면 이런 일이 마술처럼 발생합니까? 아니면 FreeBSD 부팅 프로세스에 이 새 드라이브에 대해 내가 입력하는 비밀번호도 시도해야 한다고 알려야 합니까?

(5) geli attachfreebsd-zfs 파티션으로 이동합니다.

(6) zpool attach다음과 같이 새로운 암호화된 파티션을 생성합니다.zpool attach zroot ada0p3.eli ada3p3.eli

gpart bootcode(7) 이제 FreeBSD가 새 드라이브에서 실행하라고 지시할 것 같습니다 . 이 방법.

(8) 재동기화가 완료될 때까지 기다립니다.

(9) 기존 드라이브를 물리적으로 제거합니다. 재부팅 후에는 zpool에서도 제거됩니다.

내...그게 내가 하는 일인 것 같은데? 그런데 위에서 말했듯이 스왑에 대해서는 전혀 확신이 없습니다. 마술처럼 /dev/mirror/swap.eli의 일부가 됩니까? 어떻게든 추가해야 하나요? 마찬가지로 기존 드라이브의 스왑 공간도 마술처럼 사라지나요? 어떻게든 제거해야 하나요?

도움을 주셔서 미리 감사드립니다.

답변1

나중에 참조할 수 있도록 내 질문에 답합니다.

(1) 전반적으로 내 계획은 잘 진행됐다.

(2) 스왑의 경우 새 스왑 파티션을 추가하고 gmirror insert이전 스왑 파티션을 삭제했습니다 gmirror remove.

(3) 보조 비밀번호 문제 관련: 새 디스크에 동일한 비밀번호를 사용했고 (더 이상 아무 것도 하지 않고) 부팅 시 비밀번호를 한 번만 입력하면 되었습니다.

관련 정보