Google Distributed Cloud 에어 갭 적용 어플라이언스 1.0.x 알려진 문제

모니터링

기기 재부팅 후 Grafana 대시보드에 액세스하는 동안 정상적인 업스트림 오류가 없음

버전: 1.0

증상: 기기를 종료한 후 Grafana UI에 연결할 수 없습니다. 이 문제는 Cortex 포드에서 CPU가 과부하될 때 발생합니다.

해결 방법:

  1. 관리 플레인에서 mon-cortex의 하위 구성요소 조정을 일시중지합니다.

    export SUBCOMPONENT_NAME=mon-cortex
    export SUBCOMPONENT_NAMESPACE=root
    
    kubectl annotate subcomponent "${SUBCOMPONENT_NAME:?}" -n "${SUBCOMPONENT_NAMESPACE:?}" --kubeconfig=/root/release/root-admin/kube-admin-remote-kubeconfig lcm.private.gdc.goog/paused=true
    
  2. 제어 영역에서 복제본 수를 0으로 줄여 기존 cortex 포드를 삭제합니다. 이 작업이 필요한 이유는 포드 cortex-1가 잘못된 상태에 있으면 해당 상태를 유지하고 다시 시작하지 않기 때문입니다. 포드를 다시 시작하려면 복제본 수를 0으로 줄입니다.

    kubectl scale statefulset cortex --replicas=0 -n mon-system --kubeconfig=/root/release/root-admin/root-admin-kubeconfig
    
  3. cortex 복제본 수를 7로 늘립니다.

    kubectl scale statefulset cortex --replicas=7 -n mon-system --kubeconfig=/root/release/root-admin/root-admin-kubeconfig
    

No healthy upstream error이 사라집니다.

스토리지

OTS VM이 비정상 종료 후 자동으로 다시 시작되지 않음

버전: 1.0.x

증상: 전원 손실과 같은 비정상적인 종료 후 재부팅 시 OTS VM이 자동으로 다시 시작되지 않을 수 있습니다. bm01bm02으로 이동하여 VM 상태를 확인합니다.

[root@aa-ah-bm01 ~]# virsh list --all
 Id   Name              State
----------------------------------
 -    aa-ah-stge01-01   shut off

lsblk을 확인합니다. 다음과 같이 표시되는 경우

nvme0n1                             259:0    0   3.5T  0 disk
└─md127                               9:127  0  10.5T  0 raid5
nvme3n1                             259:1    0   3.5T  0 disk
└─md127                               9:127  0  10.5T  0 raid5
nvme2n1                             259:2    0   3.5T  0 disk
└─md127                               9:127  0  10.5T  0 raid5
nvme1n1                             259:3    0   3.5T  0 disk
└─md127                               9:127  0  10.5T  0 raid5

그런 다음 cat /proc/mdstat를 실행합니다. raid5 배열이 active (auto-read-only) 모드인 경우 이는 비정상 종료 또는 전원 손실로 인해 발생합니다. mdadm는 배열의 슈퍼 블록이 불완전한 쓰기를 나타내거나 배열이 제대로 중지되지 않았음을 감지합니다. 데이터 무결성을 위해 배열을 resync=PENDING로 표시하고 auto-read-only 모드로 가져오는 경우가 많습니다.

해결 방법:

  1. RAID 재동기화 및 복구를 시작합니다.

    sudo mdadm --readwrite /dev/NAME
    

    NAME을 RAID 기기 이름(예: md127)으로 바꿉니다. raid5 배열이 active 모드인지 확인합니다.

    [root@aa-ah-bm01 ~]# cat /proc/mdstat
    Personalities : [raid1] [raid6] [raid5] [raid4]
    md126 : active raid1 nvme5n1[0] nvme4n1[1]
          937692352 blocks super 1.0 [2/2] [UU]
          bitmap: 7/7 pages [28KB], 65536KB chunk
    
    md127 : active raid5 nvme3n1[2] nvme2n1[4] nvme1n1[1] nvme0n1[0]
          11251817472 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
          bitmap: 0/28 pages [0KB], 65536KB chunk
    
    unused devices: <none>
    
  2. /etc/crypttab 파일에서 LUKS 구성을 확인합니다. 이 구성은 다음 예시와 같습니다.

    luksroot UUID=45297124-672d-4c03-9805-de94b545e959 none luks,discard
    luksrd5 UUID=b10724fe-2b17-423c-8078-d62410738f8a /etc/luks/rd5.keyfile luks,discard
    luksnvram UUID=12694ec9-1d1c-41a3-af2e-8f5bbc1ddca4 /etc/luks/md126p73.keyfile luks,discard
    

    이 파일에는 luksrd5luksnvram의 키 파일 위치가 포함되어 있습니다.

  3. raid5 udev 이름을 가져옵니다.

    cd /dev/md
    ls | grep rd5
    
  4. nvram udev 이름을 가져옵니다.

    NVRAM=$(blkid -o device | while read -r device; do
      if blkid "$device" | grep -q 'PARTLABEL=".*OTS.*"'; then
        echo "$device"
        break
      fi
    done)
    echo $NVRAM
    
  5. OTS에서 사용하는 luksrd5luksnvram라는 LUKS 기기를 엽니다.

    cryptsetup luksOpen /dev/md/<raid5 udev name> luksrd5 --key-file <luksrd5 keyfile>
    cryptsetup luksOpen /dev/<nvram udev name> luksnvram --key-file <luksnvram keyfile>
    
  6. lsblk 명령어는 다음 예시와 같은 내용을 출력합니다.

    [root@aa-ah-bm02 ~]# lsblk
    NAME                                             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    nvme0n1                                          259:0    0   3.5T  0 disk
    └─md127                                            9:127  0  10.5T  0 raid5
      └─luksrd5                                      253:9    0  10.5T  0 crypt
        ├─data_pool-aa--ah--stge01--1_sdotconfig.iso 253:10   0     4M  0 lvm
        ├─data_pool-aa--ah--stge01--1_coredisk       253:11   0   120G  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_1    253:12   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_2    253:13   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_root_1         253:14   0    68G  0 lvm
        └─data_pool-aa--ah--stge01--1_root_2         253:15   0    68G  0 lvm
    nvme1n1                                          259:1    0   3.5T  0 disk
    └─md127                                            9:127  0  10.5T  0 raid5
      └─luksrd5                                      253:9    0  10.5T  0 crypt
        ├─data_pool-aa--ah--stge01--1_sdotconfig.iso 253:10   0     4M  0 lvm
        ├─data_pool-aa--ah--stge01--1_coredisk       253:11   0   120G  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_1    253:12   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_2    253:13   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_root_1         253:14   0    68G  0 lvm
        └─data_pool-aa--ah--stge01--1_root_2         253:15   0    68G  0 lvm
    nvme2n1                                          259:2    0   3.5T  0 disk
    └─md127                                            9:127  0  10.5T  0 raid5
      └─luksrd5                                      253:9    0  10.5T  0 crypt
        ├─data_pool-aa--ah--stge01--1_sdotconfig.iso 253:10   0     4M  0 lvm
        ├─data_pool-aa--ah--stge01--1_coredisk       253:11   0   120G  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_1    253:12   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_2    253:13   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_root_1         253:14   0    68G  0 lvm
        └─data_pool-aa--ah--stge01--1_root_2         253:15   0    68G  0 lvm
    nvme3n1                                          259:3    0   3.5T  0 disk
    └─md127                                            9:127  0  10.5T  0 raid5
      └─luksrd5                                      253:9    0  10.5T  0 crypt
        ├─data_pool-aa--ah--stge01--1_sdotconfig.iso 253:10   0     4M  0 lvm
        ├─data_pool-aa--ah--stge01--1_coredisk       253:11   0   120G  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_1    253:12   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_data_pool_2    253:13   0   5.1T  0 lvm
        ├─data_pool-aa--ah--stge01--1_root_1         253:14   0    68G  0 lvm
        └─data_pool-aa--ah--stge01--1_root_2         253:15   0    68G  0 lvm
    nvme4n1                                          259:4    0 894.3G  0 disk
    └─md126                                            9:126  0 894.3G  0 raid1
      ├─md126p1                                      259:13   0    99M  0 md    /boot/efi
      ├─md126p2                                      259:14   0  1000M  0 md    /boot
      ├─md126p3                                      259:15   0     4M  0 md
      ├─md126p4                                      259:16   0     1M  0 md
      ├─md126p5                                      259:17   0 873.1G  0 md
       └─luksroot                                   253:0    0 873.1G  0 crypt
         ├─rocky-rl--root                           253:1    0 190.1G  0 lvm   /
         ├─rocky-rl--swap                           253:2    0     2G  0 lvm
         ├─rocky-rl--tmp                            253:3    0  17.5G  0 lvm   /tmp
         ├─rocky-rl--var                            253:4    0 523.9G  0 lvm   /var
         ├─rocky-rl--home                           253:5    0  17.5G  0 lvm   /home
         ├─rocky-rl--var_tmp                        253:6    0  17.5G  0 lvm   /var/tmp
         ├─rocky-rl--var_log                        253:7    0  87.3G  0 lvm   /var/log
         └─rocky-rl--var_log_audit                  253:8    0  17.5G  0 lvm   /var/log/audit
      ├─md126p6                                      259:18   0  64.2M  0 md
      └─md126p73                                     259:19   0    20G  0 md
        └─luksnvram                                  253:16   0    20G  0 crypt
    nvme5n1                                          259:5    0 894.3G  0 disk
    └─md126                                            9:126  0 894.3G  0 raid1
      ├─md126p1                                      259:13   0    99M  0 md    /boot/efi
      ├─md126p2                                      259:14   0  1000M  0 md    /boot
     ├─md126p3                                      259:15   0     4M  0 md
      ├─md126p4                                      259:16   0     1M  0 md
      ├─md126p5                                      259:17   0 873.1G  0 md
       └─luksroot                                   253:0    0 873.1G  0 crypt
         ├─rocky-rl--root                           253:1    0 190.1G  0 lvm   /
         ├─rocky-rl--swap                           253:2    0     2G  0 lvm
         ├─rocky-rl--tmp                            253:3    0  17.5G  0 lvm   /tmp
         ├─rocky-rl--var                            253:4    0 523.9G  0 lvm   /var
         ├─rocky-rl--home                           253:5    0  17.5G  0 lvm   /home
         ├─rocky-rl--var_tmp                        253:6    0  17.5G  0 lvm   /var/tmp
         ├─rocky-rl--var_log                        253:7    0  87.3G  0 lvm   /var/log
         └─rocky-rl--var_log_audit                  253:8    0  17.5G  0 lvm   /var/log/audit
      ├─md126p6                                      259:18   0  64.2M  0 md
      └─md126p73                                     259:19   0    20G  0 md
        └─luksnvram                                  253:16   0    20G  0 crypt
    
  7. 다음을 실행하여 VM을 시작합니다.

    [root@aa-ah-bm01 ~]# virsh start aa-ah-stge01-01
    Domain 'aa-ah-stge01-01' started
    
    [root@aa-ah-bm01 ~]# virsh list --all
     Id   Name              State
    ---------------------------------
     1    aa-ah-stge01-01   running
    
  8. bm01bm02 모두에서 단계를 반복합니다. 몇 분 정도 기다린 후 OTS 클러스터에 로그인하여 클러스터가 정상인지 확인합니다.

    aa-ah-stge01::> cluster show
    Node                  Health  Eligibility
    --------------------- ------- ------------
    aa-ah-stge01-01       true    true
    aa-ah-stge01-02       true    true
    2 entries were displayed.
    
    aa-ah-stge01::> storage failover show
                                  Takeover
    Node           Partner        Possible State Description
    -------------- -------------- -------- -------------------------------------
    aa-ah-stge01-01
                   aa-ah-stge01-  true     Connected to aa-ah-stge01-02
                   02
    aa-ah-stge01-02
                   aa-ah-stge01-  true     Connected to aa-ah-stge01-01
                   01
    2 entries were displayed.