K-PaaS 로고

SUPPORT

  1. SUPPORT
    • 가이드
    • 다운로드
    • 문의하기
    • 기술지원 신청
    • 인증서비스

묻고 답하기

기술지원paasta semini버전에서 redis 서버 45개중 사용중인 21 서비스 외 삭제 방법
신*철 2024-07-22 14:37:28
  • hits84

안녕하세요  질의 사항에  답변 너무 감사합니다.  먼저 질의 내용들 감사하게 잘 처리 되었습니다.

죄송한데 추가 질문 드리겠습니다.

SW-login의 redis vms가 45개 화면에 출력되는데 marisDB에서 목을 출력 후

사용하는 redis vm 21개 외 삭제 하려고 하였습니다.

mariaDB에서 사용하지 않는 redis instance를 delete from on_demand 명령어로 삭지 후 DB에서는

지워졌는데 bosh vms 해 보면 지워지지 않고 그대로 있습니다.

vmware vCenter에서 확인 해 봐도 그대로 있습니다.

혹시 vCenter에서 DB에서 지운 instance  vm을 찾아서 지워도 문제가 없을까요?

아니면 확실하게 지우는 방법이 따로 있을까요?  

paasta에서 자주 로그 장애 및 접속 장애가 있는게 관련이 있을 꺼 같아 정리하려고 합니다.

맞는 조치인지도 조언 부탁 드립니다.

감사합니다.

 

안녕하세요 개방형 클라우드 플랫폼 센터입니다.

 

우선 SW-login은 어떤 용어인지 알 수 없으나, K-PaaS(기존 PaaS-TA)에서 제공되는 redis service의 경우 paasta-on-demand-redis-release를 사용하는 redis on demand service의 가능성이 큽니다

 

확인방법 : bosh rs 커맨드 후 paasta-on-demand-redis-release 확인

 

on demand service의 경우 서비스 동작방식은 크게

 

서비스 생성 : 유저가 서비스 생성(cf create-service) -> broker가 BOSH에 Deployment를 변경하여 VM 생성 -> 해당 서비스 정보와 VM 정보를 DB에 저장
서비스 삭제 : 유저가 서비스 삭제(cf delete-service) -> broker가 DB에 저장되어있는 VM 정보를 인식 -> broker가 BOSH에 Deployment를 변경하여 VM 삭제 -> DB에 저장되어있는 서비스 삭제 로 진행됩니다.

 

따라서
1. DB에서 저장되어있는 정보를 삭제하여도 VM은 관련없기에 지워지지 않으며,
2. VMware 레벨(IaaS 레벨)에서 삭제를 진행하여도 BOSH가 삭제된 VM을 복구하려고 진행하기때문에 권장되지 않습니다.

 

정상적인 삭제방법은 해당 서비스를 찾아서 삭제하는 방법으로
$ cf orgs
$ cf spaces
$ cf target -o org_name -s space_name
$ cf services
로 삭제할 services를 조회한 후

 

$ cf delete-service service_name

을 통해 삭제를 진행하셔야 합니다.

 

다만 해당 명령어를 사용하면 BOSH도 VM 을 삭제하게 되는데, BOSH는 task의 갯수가 존재하므로, 하나의 BOSH가 task가 종료되면 다음 서비스를 삭제하는것을 권장드립니다.

 

BOSH task 확인방법 : $ bosh tasks

 

그러나 MariaDB에서 Service Instance에 대한 정보를 강제로 삭제하였다면, cf delete-service 를 진행하여도 해당 서비스 인스턴스는 정상적으로 삭제가 되지 않습니다.

 

따라서 지우신 데이터를 복구해야 하며, on_demand_info의 테이블 구조는 다음과 같습니다.

 

`on_demand_info` (

`service_instance_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`dashboard_url` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

`task_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

`use_yn` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 'Y',

`plan_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`service_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`space_guid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`organization_guid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

`vm_instance_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

`app_guid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

`app_parameter` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,

PRIMARY KEY (`service_instance_id`) USING BTREE

)

 

삭제 안하신 다른 Redis Instance와 비교 진행하여 지우신 값을 다시 입력하시면 되지만,

service_instance_id, space_guid, organization_guid, vm_instance_id

은 제대로된 정보를 찾아서 값을 입력하셔야 합니다.

 

service_instance_id 확인방법 : cf service service_name --guid

space_guid 확인방법 : cf space space_name --guid

organization_guid : cf org org_name --guid

vm_instance_id : bosh vms -d redis 의 Instance 항목 참고
(다른 Redis Instance와 유사하게 넣으시면 됩니다.)

 

service_instance_id와 vm_instance_id는 어떻게 바인딩 되어 있는지는 on_demand_info 테이블에서만 관리하기 때문에 카운팅만 맞으시면 됩니다.

 

따라서 redis VM 목록을 확인하신 후, 지워진 DB 내용을 채워넣고, cf delete-service 명령어를 이용하여 삭제를 진행하시면 됩니다.

 

 

감사합니다.

 

알 림

필수입력 값 모달창