기본 부팅이 실패할 경우를 대비해 부팅/루트 백업

기본 부팅이 실패할 경우를 대비해 부팅/루트 백업

저는 Raspberry Pi를 기반으로 한 미니 서버를 보유하고 있습니다. 그들 중 다수가 있습니다. 하지만 현재 어떤 이유로 SD 카드의 파일 시스템이 손상되어 장치가 더 이상 제대로 작동하지 않기 때문에 비교적 자주 오류가 발생하고 있습니다.

우리는 보다 안정적인 MMC를 가질 수 있도록 CM3+로 마이그레이션하여 이 문제를 해결할 예정이지만, 또한 각 개별 장치의 신뢰성도 향상시키고 싶습니다.

따라서 질문은 다음과 같습니다.

두 개의 부팅/루트 파티션(기본 파티션과 기본 파티션이 손상된 경우를 대비한 백업)이 있는 디스크 레이아웃을 생성할 수 있습니까? 그런 다음 부트로더(grub?)는 부팅 시도를 기록하고 성공적으로 부팅된 시스템은 이를 재설정합니다. 실패한 시작 횟수가 지정된 횟수를 초과하면 백업을 기본 데이터베이스에 복사하거나 백업에서 시작합니다.

답변1

저는 Raspberry Pi를 기반으로 한 미니 서버를 보유하고 있습니다. 그들 중 다수가 있습니다. 하지만 현재 어떤 이유로 SD 카드의 파일 시스템이 손상되어 장치가 더 이상 제대로 작동하지 않기 때문에 비교적 자주 오류가 발생하고 있습니다.

rootfs용 SD 카드는 좋은 생각이 아닙니다. 적어도:

  • 기록하지 마세요. 아니면 tmpfs에 로그인하세요.
  • 불필요한 FS 수정을 방지하기 위해 마운트 옵션을 조정합니다( noatime, , nodiratime...)

우리는 보다 안정적인 MMC를 가질 수 있도록 CM3+로 마이그레이션하여 이 문제를 해결할 예정이지만, 또한 각 개별 장치의 신뢰성도 향상시키고 싶습니다.

eMMC가 더 좋을 것 같습니다.

두 개의 부팅/루트 파티션(기본 파티션과 기본 파티션이 손상된 경우를 대비한 백업)이 있는 디스크 레이아웃을 생성할 수 있습니까?

이것이 해결책인지 확실하지 않습니다. 대신 더 나은 파일 시스템을 살펴 보겠습니다. 예를 들어,F2FS또는 그런 것.

그런 다음 부트로더(grub?)는 부팅 시도를 기록하고 성공적으로 부팅된 시스템은 이를 재설정합니다. 실패한 시작 횟수가 지정된 횟수를 초과하면 백업을 기본 데이터베이스에 복사하거나 백업에서 시작합니다.

바라보다이 게시물그럽(Grub)과 라즈베리 파이(Raspberry Pi)에 대하여. 문제는 랩스베리 파이 특정 로더가 필요하다는 것입니다. 제 생각엔 그런 트릭을 수행할 수 없을 것 같습니다.

내가 당신과 같은 문제를 해결해야 한다면, 내가 할 일은 다음과 같습니다.

  1. 최소 운영 체제를 구축합니다(예: Yocto 또는 직접 만든 Raspbian 사용).
  2. NFS 또는 TFTP를 사용하여 시작하고 tmpfs를 rootfs로 사용하십시오.
  3. 영구 스토리지에만 eMMC를 사용하면 분명히 사용이 최적화됩니다.

이점:

  • 시스템 파일은 RAM에만 존재하므로 eMMC나 SD 카드를 굽는 것에 대해 걱정할 필요가 없습니다.
  • (NFS/TFTP 서버에서) 하나의 트리를 업데이트하고 재부팅하면 모든 랩스베리 파이가 업데이트됩니다.

결점:

  • rootfs가 RAM에 저장되므로 애플리케이션에 사용할 수 있는 RAM이 적습니다.

관련 정보