3.5.6. 문제 해결
이 섹션에서는 발생할 수 있는 몇 가지 문제에 대해 설명하고 가능한 해결 방법을 제공합니다.
3.5.6.1. Linux 네이티브 AIO 실패
증상
MySQL 컨테이너가 시작되지 않고 로그에 다음과 같은 내용이 표시됩니다.
151113 5:06:56 InnoDB: Using Linux native AIO 151113 5:06:56 InnoDB: Warning: io_setup() failed with EAGAIN. Will make 5 attempts before giving up. InnoDB: Warning: io_setup() attempt 1 failed. InnoDB: Warning: io_setup() attempt 2 failed. Waiting for MySQL to start ... InnoDB: Warning: io_setup() attempt 3 failed. InnoDB: Warning: io_setup() attempt 4 failed. Waiting for MySQL to start ... InnoDB: Warning: io_setup() attempt 5 failed. 151113 5:06:59 InnoDB: Error: io_setup() failed with EAGAIN after 5 attempts. InnoDB: You can disable Linux Native AIO by setting innodb_use_native_aio = 0 in my.cnf 151113 5:06:59 InnoDB: Fatal error: cannot initialize AIO sub-system 151113 5:06:59 [ERROR] Plugin 'InnoDB' init function returned error. 151113 5:06:59 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 151113 5:06:59 [ERROR] Unknown/unsupported storage engine: InnoDB 151113 5:06:59 [ERROR] Aborting
설명
MariaDB의 스토리지 엔진은 리소스 제한으로 인해 커널의 AIO(Asynchronous I/O) 기능을 사용할 수 없었습니다.
해결
값이 0
으로 환경 변수tekton _AIO를 설정하여 AIO
사용을 완전히 끕니다. 후속 배포에서는 MySQL 구성 변수 innodb_use_native_aio
가 값이 0
이 되도록 정렬됩니다.
또는 aio-max-nr
커널 리소스를 늘립니다. 다음 예제에서는 aio-max-nr
의 현재 값을 검사하고 두 번 실행합니다.
$ sysctl fs.aio-max-nr fs.aio-max-nr = 1048576 # sysctl -w fs.aio-max-nr=2097152
노드별 확인이며 다음 노드를 재부팅할 때까지 지속됩니다.