NAS로 gitlab-postgres 데이터 이전 중 DB 기동 실패
개요
기존 Node1에서 돌던 Redis 및 Node2에서 돌던 PostgreSQL(이하 PG), gitlab의 데이터를 NAS로 이전
Redis의 경우 4.0.7 버전을 사용중에 중지시키고, 예전에 사용했던 YAML파일을 복사해 붙여넣기 하다가 3.0.7 버전으로 사용하는 바람에 개발규칙-참고 페이지가 불능이 되었던 사태가 있었음 → redis 버전을 제대로 되돌려주니 해결됨
PG의 경우 기존 Deployment, replica=1으로 실행되던 것을 replica=2로 HA구성을 위해 바꾸었으나 조부장님 컴퓨터에서 깃랩이 자주 팅기는 현상이 발생함(난 안그랬음)
그래서 Deployment를 StatefulSet으로 변경하고 replica=2를 주었더니 CrashLoopBack과 함께 컨테이너가 시작되지를 않음.
PANIC: could not locate a valid checkpoint record
해결
- 검색 결과, 해당 오류는 PG의 로그 시스템이 꼬여서 생기는 오류라고 한다. 그래서 강제로 로그 시스템을 리셋시켜줘야 하는데, 리셋하는 방법은 다음과 같다.
su postgres # root으로 실행할 수 없음
pg_resetwal -f /var/lib/postgresql/data # DATADIR로 명명된 데이터 디렉토리를 지정하면 되는데, 깃랩의 경우 이 위치를 데이터 디렉토리를 잡고 있었음
- 그러나 컨테이너가 계속 생성과 동시에 폭파되므로, deployment에 args 인자로 강제로 sleep을 전달
spec.template.spec.containers[0].args: ["sleep","1000000"]
- 이후 상단의 명령어를 따라 로그를 리셋해주고 파드를 삭제해주면 Deployment가 알아서 파드를 생성하면서 정상적으로 기동
미해결
- 결국 튕기는 현상은 아직 복구하지 못함
21. 08. 17
개요
튕기는 현상에 대하여 NAS의 네트워크 상태를 모니터링한 결과, 초당 12Mbps로 어딘가에서 데이터를 읽어들이고 있음.
타 서버의 경우 기가급 네트워크를 사용하고 있는데 반해, node2:251서버의 경우 메인보드에 랜카드를 꽂을 슬롯이 부족해 기본 랜카드를 사용하고 있어 100Mbps급 네트워크를 사용하고 있는 것으로 추정됨
네트워크 최대 제한에 걸려서 더이상 데이터를 보내지 못하고 트래픽 과부하로 인해 깃랩이 빈번하게 튕기는 것으로 추정
해결
- NAS로 이전했던 postgre 데이터를 다시 node2로 재이전하고 HA 계획을 보류
'DevOps > gitlab' 카테고리의 다른 글
[DevOps] Gitlab으로 알아보는 DevOps의 이해 - 1 (0) | 2021.09.26 |
---|---|
[Node.js] Cannot get / 에러 해결 (0) | 2021.09.10 |