...
If the option is defined in the <common> section, it applies to all resources.
<strategy>는 다음과 같은 세 가지 옵션이 있습니다.
...
<strategy> has three options:
passthrough The default value of on-io-error의 기본값으로 error is to report I/O 오류를 상위 계층에 보고합니다errors to the upper layer. I/O 오류는 Primary 노드일 경우 마운트 된 파일시스템으로 보내고, Secondary 노드에서는 Primary 노드로 쓰기 결과를 전달하거나 (복제 연결이 없을 경우)무시 됩니다. 이때 디스크 상태는 현 상태를 유지하며 해당 에러블럭에 대해 OOS로 기록합니다.detach errors are sent to the mounted file system in the case of the primary node, and error results to the primary node, but in the secondary node errors are ignored (if there is no replication connection). At this time, the disk status is maintained and the error block is recorded in OOS.
detach When a lower-level I/O 에러가 발생하면, 노드는 백업 디바이스를 복제볼륨으로부터 분리(detach)시키고 diskless 상태로 전환합니다error occurs, the node detaches the backup device from the replication volume and switches to diskless state.
call-local-io-error. 로컬 Call the command defined by the local I/O 에러 핸들러로 정의된 명령을 호출합니다. 이 옵션은 error handler. This option is only available if local-io-error <cmd> 가 리소스의 <handlers> 섹션에 정의되어 있어야 사용 가능합니다. localis defined in the <handlers> section of the resource. Using the local-io-error 호출 명령 또는 스크립트를 사용하면 I/O 에러 처리를 전적으로 사용자의 결정에 맡깁니다.
에러처리 정책은 리소스가 운영중이더라도 adjust 명령을 통해 실시간 적용할 수 있습니다.
Info |
---|
복제 서비스 운영 경험에 따르면 디스크 장애는 생각보다 자주 발생합니다. 이러한 결과는 하위 디스크 계층에 의존적이며 디스크 계층 즉, 표준 SCSI 계층의 에러는 임의의 시점에 언제든지 발생할 수 있다는 점에 비추어 보면 디스크 계층의 안정성과는 별도로 다루어야 하고, 복제 측면에서도 유연하게 대처할 수 있어야 함을 의미합니다. 그동안 디스크 장애 정책으로 제공해 왔던 detach 정책은 서비스 운영관점에선 복제가 특정시점에 일방적으로 중단되는 정책이었습니다. 이러한 방식은 사후 복구도 어렵고 서비스 운영 지속 측면에서도 불리합니다. 우리는 이러한 문제를 해결하기 위해 passthrough 정책을 고안하였으며 bsr의 기본정책으로 설정하게 되었습니다. 패스스루 정책은 I/O 에러가 발생할 경우 해당 블럭에 대해서 OOS 를 기록하고 실패된 I/O 결과를 파일시스템으로 전달합니다. 이 때 파일시스템이 에러가 발생한 블럭에 대해 쓰기 재시도하여 성공하고 이를 통해 OOS를 해소한다면 이는 일시적인 디스크 계층의 에러를 파일시스템 스스로 극복하도록 유도하게 됩니다. 비록 파일시스템의 동작 특성에 따라 완전히 OOS가 해소되지 못한다고 하더라도 일부 남겨진 OOS 는 연결 재시도 등을 통해 재동기화 하여 해결할 수도 있습니다. 즉 패스스루 정책은 에러 블럭을 FS가 스스로 해결하거나 동기화를 통해 해소하도록 유도하고, 기본적으로 디스크 I/O에 문제가 있더라도 서비스 운영을 지속하도록 보장합니다. |
...
call command or script, I/O error handling is entirely at the user's discretion.
The error handling policy can be applied in real time through the adjust command even if the resource is in operation.
Info |
---|
Disk failures occur more often than expected, based on experience in operating replication services. These results depend on the sub-disk layer. This means that errors in the disk layer, that is, the standard SCSI layer, can occur at any time and at any time, which means that they must be handled separately from the stability of the disk layer and be flexible in terms of replication. The detach policy, which has been provided as a disk failure policy, was a policy where replication was unilaterally stopped at a specific point in time in terms of service operation. This method is also difficult to post-recovery and disadvantageous in terms of continuing service operation. We devised a passthrough policy to solve this problem and set it as the default policy for bsr. The pass-through policy records the OOS for the block when an I/O error occurs and delivers the failed I/O result to the file system. At this time, if the file system succeeds by retrying to write to the block where the error occurred and resolves the OOS through this, it will lead to the temporary overcoming of the disk layer error. Although OOS cannot be completely resolved depending on the operating characteristics of the file system, some remaining OOS can be resolved by resynchronizing through connection retries. In other words, the pass-through policy induces the Filesystem to resolve the error block by itself or through synchronization, and basically ensures that the service continues to operate even if there is a problem with the disk I/O. |
Temporary error handling
I/O 에러 정책을 패스스루(passthough)로 설정할 경우 I/O 에러의 결과는 파일시스템으로 전달되고 bsr 은 오류가 발생한 I/O 블럭을 OOS로 기록합니다. 이러한 OOS는 I/O 에러가 일시적이었다면 파일시스템에 의해 재 시도 되어 스스로 해소되거나, 그렇지 않다면 복제 재연결을 통해 재동기화를 유도하여 해당 OOS 영역을 해소합니다. 이 때 OOS를 해소하는 동기화의 방향이나 절체 여부 등의 운영은 관리자 또는 HA 운영 로직에 맡깁니다.
Info |
---|
bsr 은 I/O 오류가 일시적인지 또는 영구적인지 판단할 수 없으며 섹터 단위의 I/O 오류 추적 등의 구체적인 오류 통계를 취합하지는 않습니다. 다만 오류가 발생한 해당 장치에 대한 I/O 에러 발생 회수 정보만 유지합니다. 비록 구체적인 정보는 알 수 없지만 bsradm status의 I/O 에러 회수를 토대로 에러가 발생한 정도를 파악할 수 있습니다. 만약 일시적 에러가 발생했다면 status에 보여지는 io error 와 oos 는 다소간의 양만 기록되어 있을 것이며 시간이 지나도 그 양은 증가하지 않을 것 입니다. |
...
Permanent error handling
일시적으로 I/O 오류가 발생하여 다소간의 OOS가 기록되는 상황을 제외한 모든 디스크 오류 상황을 영구적 오류 상태로 간주합니다.
...