내 데이터베이스 서버의 raid 10 구성에서 btrfs 구현을 고려하고 있지만 nodatacow 옵션에 대해 혼란스럽습니다.
~에 따르면https://btrfs.wiki.kernel.org/index.php/Gotchas:
무작위 쓰기 횟수가 많은 파일은 심각하게 조각화되어(10000개 범위 이상) HDD가 손상되고 SSD 또는 대용량 RAM이 있는 시스템에서 CPU 로드가 몇 초 동안 과도하게 급증할 수 있습니다. 서버 및 워크스테이션에서 이는 데이터베이스 및 가상 머신 이미지에 영향을 미칩니다. nodatacow 설치 옵션은 여기에서 유용할 수 있으며 관련 문제가 있습니다.
그런 다음 문서에는 다음과 같이 명시되어 있습니다.노다타 소옵션은 다음과 같습니다:
새로 생성된 파일에 대한 쓰기 데이터를 복사하지 마세요. 기존 파일은 영향을 받지 않습니다. 체크섬도 꺼집니다! IOW, nodatacow는 nodatasum을 의미합니다. datacow는 사용자가 이전 버전의 파일이나 최신 버전의 파일에 액세스할 수 있도록 하는 데 사용됩니다. datacow는 부분적으로 업데이트된 파일을 디스크에 쓰지 않도록 보장합니다. nodatacow는 데이터를 직접 덮어써(예: ext[234]) 약간의 성능 향상을 제공하지만 시스템 오류가 발생할 경우 파일을 부분적으로 업데이트할 가능성이 있습니다. 워크로드가 대용량 데이터베이스 파일을 무작위로 작성하는 경우(이 경우 차이가 커질 수 있음)를 제외하고 성능 향상은 일반적으로 5% 미만입니다. 참고: 압축을 끄십시오!
이는 데이터베이스 서버의 디스크에 대해 이 옵션을 선택해야 하며 이 옵션을 사용하면 손상 체크섬이 비활성화된다는 의미입니까?
답변1
예, 이는 일반적으로 데이터베이스에 좋은 아이디어이며, 예, 체크섬을 비활성화합니다(같은 이유로 인라인 압축을 비활성화하고 구현되면 암호화도 비활성화할 수 있습니다).
즉, 일반적으로 전체 파일 시스템을 마운트하는 데 사용하는 것이 아니라 를 실행하여 데이터베이스 파일을 생성하기 전에 데이터베이스 파일이 저장될 디렉터리를 표시하는 것이 좋습니다 chattr +C
. 이 특정 속성은 마운트 옵션과 동일한 효과를 갖지만 nodatacow
파일별로 작동하며 파일이 생성된 디렉터리에서 상속됩니다.