[Ansible] Ansible 사용하여 fio(DISK test) 자동화 시키기!

이선재·2023년 3월 2일
1

ansible

목록 보기
3/3

1. 개요

하드디스크의 read, wirte IOPS 및 bandwidth를 테스트를 할 수 있는 FIO 명령어를 사용하여 HDD, SSD과 같은 저장장치의 성능 측정을 진행한다.
이는 기존의 경우 쉘스크립트로 진행이 되었지만, 다음과 같은 단점 때문에 ansible로 구성하려 한다.

기존 동작방식

  • ssh 접속
  • putty 등을 사용해 fio 명령어 실행
  • IOPS 값 grep 후 복사
  • Excel로 붙혀넣기

단점(개선 필요점)

  • 동시 동작을 진행시킬 수 없어 명확한 성능 측정을 진행할 수 없음 (Random read, write / Sequential read, write)
    -> Ansible은 하나의 task가 종료시 까지 기다린 후 다음 task를 동시 진행
  • 성능 테스트(fio)를 진행 후 Client 별로 접속하여 결과값을 일일이 도출해내야함
    -> 결과값에서 필요 부분을 가져와 Fetch 모듈로 Server로 일괄 전송

► Ansible Disk 성능 테스트를 Ansible로 구성하여 기능 테스트 진행

2. DISK fio-test 진행 과정

Client 디렉토리 구성

  • output: iodep Random R/W, Sequential R/W 결과값 결과값들 저장
  • result: /output 디렉토리에서 확인할 특정 결과값 저장 - output에서 grep 한 값 저장
  • tmp: 마운트할 디렉토리 경로

Playbook 진행도

apt update
fio 설치
Iodepth 별 Random/Sequential R/W
IOPS 값 정제 후 nodename.txt으로 저장
client에서 server로 파일 전송

playbook 설명

3. 결과(개선 필요점 해결)

<동시 동작 확인>

  • 동시 동작을 함으로써 동일한 시간(트레픽)에서 fio test를 진행 가능

<output 디렉토리>

  • 필요에 맞게 정제되지 않은 전체 결과값

<필요 IOPS 값를 서버로 일괄 전송>

필요한 값만을 서버로 일괄 전송

4. 결론

<Ansible을 사용한 fio test 자동화 진행 전>

  • 일일이 ssh연결 시도
  • 클라이언트에 일일이 접속하여 성능 측정값 grep 및 data 복사/붙혀넣기 진행
  • 개별 진행으로 동일한 조건에서 테스트 불가능

<Ansible을 사용한 fio test 자동화 진행 후>

  • host ip 기술하여 ssh 개별 연결 불필요
  • server로 필요한 성능 측정값 일괄 전송
  • 동시 동작을 하기 때문에 동일한 조건에서 테스트 진행 가능

--> Ansibl을 사용하여 개선 필요점 해결 가능

profile
지적을 환영하는 인프라 냠냠을 시도하는 취준생

0개의 댓글