multibus mode 와 failover mode 와의 차이점은(device-mapper-multipath)?
device-mapper-multipath의 "path_grouping_policy" 는 어떻게 multiple paths시에 디바이스가 그룹되는 것이 지정되어 이로써 컨트롤 하게된다.
"multibus" mode에서는 스토리지에 있는 모든 path들은 같은 priority group 이 된다.
이 의미는 I/O 요청은 다른 path로 갈 수 있다는 뜻이다.
group 내에서 어떤 path를 선택하는 것에 대한 알고리즘은 다음 I/O 요청을 받게되면 "selector" parameter 로 부터 결정될 것이다.
기본 "selector" parameter 는 priority group 에서의 모든 path사이에서 round-robin으로 설정된 값이다.
Active path가 실패하는 이벤트가 발생하면, 실패한 path는 group으로 부터 삭제되고, path가 on-line으로 돌아오면 다시 복귀시킨다.
"failover" mode에서는 오직 하나의 priority group 에서 하나의 path만이 사용된다.
이 의미는 그룹이 active 하는 한 , 모든 I/O는 같은 PATH에 들어갈 것이다.
Active path가 실패하는 이벤트가 발생하면, multipath는 다른 group로 failover될 것이다. 기본 설정값은 "failover"이다.
http://kbase.redhat.com/faq/docs/DOC-3179
http://kbase.redhat.com/faq/docs/DOC-2004
dm_multipath가 설정될때path_grouping_policy 의 값은 매우 중요하다.일반적으로 두개의 선택이 있으며, failover 와 multibus 이다.
두개의 차이점:
failover - 1 path per priority group
multibus - all valid paths in 1 priority group
failover를 이용 할때, multipath -ll 의 결과는 아래와 같이 보일 것이다.:
# multipath -ll mpath3
mpath3 (3600d0230003228bc000339414edb8101)
[size=58 GB][features="0"][hwhandler="0"]
\\_ round-robin 0 [prio=1][active]
\\_ 2:0:0:6 sdd 8:48 [active][ready]
\\_ round-robin 0 [prio=1][enabled]
\\_ 3:0:0:6 sdg 8:96 [active][ready]
multibus 를 이용할때의 결과는 아래와 같다 multipath -ll:
# multipath -ll mpath3
mpath3 (3600d0230003228bc000339414edb8101)
[size=58 GB][features="0"][hwhandler="0"]
\\_ round-robin 0 [prio=2][enabled]
\\_ 2:0:0:6 sdd 8:48 [active][ready]
\\_ 3:0:0:6 sdg 8:96 [active][ready]
Which kind of path_grouping_policy will be chosen, it depends on the storage's feature, but usually multibus can provide round-robin and failover features so it has more advantages than failover.