콘텐츠로 이동
공식 웹사이트로 돌아가기

A/B 이중 시스템과 전환

A/B 이중 시스템은 JelinaOS 신뢰성의 핵심입니다. 커널과 시스템에 각각 완전한 복사본 두 개를 보관하고 한쪽에서 실행하며 다른 쪽에 업데이트합니다. 이 페이지는 일상적인 관련 작업을 안내합니다.

Terminal window
jelina-info

출력에서 현재 부팅 파티션(A 또는 B)과 시스템 정상 상태를 확인합니다. 장치는 항상 한쪽 시스템에서 실행하고 다른 쪽은 백업으로 유지합니다.

현재 System A 실행 중
│
▼ 업데이트를 System B에 쓰기
▼ 재부팅 후 B로 자동 전환
▼ 부팅 검증 성공 → B 계속 실행
│
▼ 검증 실패 → A로 자동 복귀(업무에 영향 없음)
  • 시스템이 자동 전환하므로 수동 개입이 필요하지 않습니다.
  • 두 시스템 내용은 서로 백업 역할을 하며 모두 공장 출하 상태를 유지합니다.
  • 실행 중 모든 사용자 쓰기는 데이터 파티션에 저장되어 전환과 무관합니다.
  1. 시스템 업데이트로 업데이트를 시작합니다.
  2. 예비 파티션에 기록하는 동안 장치는 계속 실행됩니다.
  3. 재시작 후 새 시스템으로 자동 전환하고 검증합니다.

새 버전에 문제가 있어 되돌려야 한다면 다음을 수행합니다.

  1. 시스템 업데이트 기능에서 이전 버전으로 복귀하도록 지정합니다.
  2. 원래 파티션으로 전환하고 검증합니다.
  3. 장치가 정상 실행을 재개합니다.

시스템 롤백 서비스로 수동 복귀할 수도 있습니다. root/kernel 롤백은 재시작 후 적용되며 애플리케이션 영역 롤백은 즉시 적용됩니다.

Terminal window
systemctl restart jelina-rollback@root # 시스템 파티션 롤백(재부팅 후 적용)
systemctl restart jelina-rollback@kernel # 커널 파티션 롤백(재부팅 후 적용)
systemctl restart jelina-rollback@app # 애플리케이션 영역 롤백(즉시 적용)
systemctl restart jelina-rollback@adv # 구성 요소 영역 롤백(즉시 적용)

롤백 전에 시스템은 현재 실제 마운트와 구성의 일치를 검증하여 중복 작업을 방지합니다.

시스템은 **부팅 카운터(bootcount)**로 상태를 추적하여 단계별 자동 복구를 수행합니다.

  • 부팅할 때마다 증가하고 정상 부팅이 성공하면 자동으로 0이 됩니다.
  • 충돌, 정전이나 워치독 재시작으로 부팅에 실패하면 계속 증가합니다.
  • 연속 부팅 실패 시 자동 복구에 진입합니다. 먼저 복구 부팅을 시도하고 계속 실패하면 시스템 파티션과 커널 파티션을 차례로 롤백합니다.
  • 복구에 성공하면 정상 부팅으로 돌아가고 카운터를 다시 초기화합니다.

이 기능은 업그레이드나 장애로 장치가 재시작 루프에 빠지지 않고 자동으로 사용 가능한 상태를 회복하도록 합니다.

매 부팅마다 현재 파티션을 검증합니다.

  • 검증 성공: 정상적으로 시스템에 진입합니다.
  • 검증 실패: 다른 시스템을 자동 시도하여 사용 가능한 상태로 진입하도록 합니다.

이를 통해 장치가 “켜면 작동하고 고장 나면 되돌아갈 수 있어” 무인 환경의 신뢰성을 보장합니다.

현재 실행 파티션을 어떻게 확인하나요? jelina-info를 실행하여 부팅 파티션 정보를 확인합니다.

두 파티션의 내용은 동기화되나요? 아닙니다. 두 시스템은 각각 출하 상태를 유지하며 사용자 데이터는 데이터 파티션에 통합 저장됩니다. 버전 관계는 시스템 업데이트 기능으로 관리합니다.

부팅 파티션을 수동 선택할 수 있나요? 일상 사용에서는 자동 관리하므로 필요하지 않습니다. 특수 유지보수에서는 플랫폼의 부팅 관리 기능을 사용할 수 있습니다. Rockchip은 jelina-rk-bootctl 도구를 제공하며 구체적인 사용법은 명령 도움말을 따릅니다.