ZFS-중복 제거 된 zvol 또는 데이터 세트를 삭제하면 서버가 중단됩니다. 회복하는 방법?


11

12 Midline (7200 RPM) SAS 드라이브가 장착 된 HP ProLiant DL180 G6에서 실행되는 보조 스토리지 서버에서 Nexentastor를 사용하고 있습니다. 시스템에는 E5620 CPU 및 8GB RAM이 있습니다. ZIL 또는 L2ARC 장치가 없습니다.

지난 주에는 iSCSI를 통해 VMWare ESX 호스트와 공유 할 수 있도록 중복 제거 및 압축이 가능한 750GB 스파 스 zvol을 만들었습니다. 그런 다음 Windows 2008 파일 서버 이미지를 만들고 ~ 300GB의 사용자 데이터를 VM에 복사했습니다. 시스템에 만족하면 가상 머신을 동일한 풀의 NFS 저장소로 옮겼습니다.

NFS 데이터 스토어에서 VM을 사용하여 실행 한 후 원래 750GB zvol을 제거하기로 결정했습니다. 그렇게하면 시스템이 정지되었습니다. Nexenta 웹 인터페이스에 대한 액세스가 중지되고 NMC가 중지되었습니다. 결국 원시 껍질을 얻을 수있었습니다. 대부분의 OS 작업은 문제가 없었지만 시스템은 zfs destroy -r vol1/filesystem명령 에 매달려있었습니다 . 추한. 다음과 같은 두 가지 OpenSolaris bugzilla 항목을 발견했으며 이제 알 수없는 기간 동안 머신이 브릭 될 것임을 이해합니다. 14 시간이 지났으므로 서버에 다시 액세스 할 수있는 계획이 필요합니다.

http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6924390

http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=593704962bcbe0743d82aa339988?bug_id=6924824

앞으로는 buzilla 해결 방법 중 하나에 제공된 조언을 드리겠습니다.

Workaround
    Do not use dedupe, and do not attempt to destroy zvols that had dedupe enabled.

업데이트 : 시스템을 강제로 꺼야했습니다. 재부팅시 시스템은 멈 춥니 다 Importing zfs filesystems. 지금은 2 시간이 지났습니다.

답변:


15

이것은 해결되었습니다. 중복 제거 된 볼륨은 삭제하기 전에 중복 제거 플래그를 해제해야합니다. 이는 zvol 또는 파일 시스템 수준뿐만 아니라 풀 수준에서도 수행해야합니다. 그렇지 않으면 삭제가 본질적으로 중복 제거됩니다. ZFS 중복 제거 테이블을 참조하고 있기 때문에 프로세스에 시간이 걸립니다. 이 경우 RAM이 도움이됩니다. 시스템에 16 기가 바이트의 추가 RAM을 일시적으로 추가하고 서버를 다시 온라인 상태로 만들었습니다. zpool은 4 시간 내에 완전히 가져 왔습니다.

도덕은 아마도 중복 제거 기술이 완전히 연마되지 않았고 RAM이 성능에 필수적이라는 것입니다. 환경에 따라 24GB 이상을 제안하고 있습니다. 그렇지 않으면 ZFS 중복 제거 기능을 해제하십시오. 개인 사용자 나 소규모 시스템에는 적합하지 않습니다.


5

Sun / Oracle ZFS 7000 시리즈 어플라이언스를 오랫동안 사용하면서 중복 제거 기술이 개선되지 않았다는 것을 알 수 있습니다. 판매와 배송을 ​​혼동하지 마십시오! 영업 사원이 "고정되었습니다"라고 알려줍니다. 실생활에서 – 실생활에서 – 24GB로는 "DDT 테이블"을 처리하기에 충분하지 않다고 말할 수 있습니다. 즉, 중복 제거 테이블을 저장하는 백엔드 인덱스입니다. 이 테이블은 시스템 메모리에 상주하여 각 I / O가 디스크에 기록되어야하는지 여부를 파악하기 위해 비행 중 인터셉트됩니다. 스토리지 풀이 클수록 데이터 변경이 많을수록이 테이블이 커지고 시스템 메모리에 대한 수요가 커집니다. 이 메모리는 ARC (캐시)와 OS 자체를 희생하여 발생합니다. 따라서 특정 명령이 포 그라운드에서 발생하고 일부는 백그라운드에서 발생하기 때문에 중단이 발생합니다. CLI에서 달리 명시하지 않는 한 풀 삭제는 포 그라운드에서 발생하는 것 같습니다. GUI 마법사는이 작업을 수행하지 않습니다.

중복 제거 된 볼륨에 정의 된 공유 내에서 NFS 데이터를 대량으로 삭제하더라도 ZFS에 "쓰기"를 처리하여 데이터를 삭제하도록 알리는 메모리가 충분하지 않으면 시스템이 반으로 줄어 듭니다.

전체적으로 메모리를 최대한 활용하지 않으면 ARC와 DDT를 제한하여 OS 용 메모리를 예약하는 방법을 찾으십시오 (그리고 DDT를 본질적으로 제한 할 수 없다고 생각합니다. 당신의 I / O에)-그런 다음 큰 삭제 또는 zvol / 풀을 destory하는 동안 호스입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.