Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Linux DM Multipath

DM-Multipathing(DM-MPIO)는 MPIO의 리눅스 구현으로 블럭디바이스의 입출력(I/O)에 대한 fail-over와 로드밸런싱(load-balancing)을 제공한다. 호스트 쪽에서 블럭 디바이스로 향하는 네트워크 패스를 두 개 이상 설정해서, 더 높은 대역폭(bandwidth)와 가용성을 확보한다. 패스가 실패할경우 이벤트가 발생하고 블럭 I/O를 재설정 하는 것으로 가용성을 높일 수 있다. 일반적으로 Fibre Channel과 iSCSI SAN 환경에서 대역폭과 가용성을 확장기 위해서 사용한다.

응용

Linux DM-MPIO는 데이터센터에서 다른 시스템과의 멀티패스를 설정하기 위해서 사용한다. 달성하고자 하는 목표는 아래와 같다.
  • Load balancing : 여러 개의 하드웨어에 요청을 분산한다. I/O 완료시간을 단축하고, 처리량을 늘리며, 자원 사용을 최적화 한다.
  • Path failover and recover : I/O 채널을 이중화 함으로써, 장애에 대한 내성을 가진다.

구성 요소

DM-MPIO는 커널 컴포넌트와 유저영역 콤포넌트로 구성된다.
  • Kernel device-mapper : 블럭 서비스를 위한 서브 시스템
  • User-space multipath-tools : 멀티패스 디바이스를 관리하기 위한 툴들
    • Multipath : 멀티패스 디바이스를 스캔하고 맵을 구성하고 업데이트 한다.
    • Multipathd : 맵 이벤트를 기다리고, 패스를 모니터링 하는 데몬 프로그램.
    • Devmap-name
    • Kpartx
    • Multipath.conf : 멀티패스 데몬 설정파일

관련 용어

  • HBA : 호스트 컴퓨터와 파이버 채널(Fibre Channel)사이에 있는 입출력 어뎁터. 채널간 데이터를 전달하는 일을 한다.
  • Path : HBA와 LUN간 연결 경로
  • DM Path States : 패스의 상태로 두개의 상태가 있다.
    • Active : 가장 최근의 I/O 명령을 성공적으로 수행했다. 즉시 사용할 수 있는 패스
    • Failed : 가장 최근의 명령이 실패했다. Active로 바뀌기를 기다린다.
  • Active/Active : 모든 패스의 컨트롤러를 사용한다.
  • Active/Passive : 단지 하나의 컨트롤러만 사용한다. 다른 컨트롤러는 대기상태(Standby)모드가 된다.
  • LUN : SCSI Logical Unit Number
  • WWID : 글로벌영역에 있는 멀티패스를 식별할 수 있는 식별자.