xfs: 장치 끝을 넘어 액세스를 시도 중입니다.

xfs: 장치 끝을 넘어 액세스를 시도 중입니다.

Redhat 7.2(루트 액세스 권한이 없음)에서는 파일 시스템에 생성된 특정 디렉터리/파일에서 다음과 같은 명령을 실행하면 ls중단됩니다. 또한 출력에서 ​​다음과 같은 오류가 계속되는 것을 관찰했습니다.catxfsdmesg

[Thu Apr 12 10:22:27 2018] dm-3: rw=33, want=63076776, limit=62914560 [Thu Apr 12 10:22:27 2018] attempt to access beyond end of device [Thu Apr 12 10:22:27 2018] dm-3: rw=33, want=63076784, limit=62914560 [Thu Apr 12 10:22:27 2018] attempt to access beyond end of device

파일 시스템 크기는 50GB여야 하며 출력은 50GB입니다 df -h.

$ df -h /opt/data
Filesystem                     Size  Used Avail Use% Mounted on
/dev/mapper/datavg-optdata   50G  3.5G   47G   7% /opt/data

하지만 확인해 보니 lsblk(루트 액세스 권한이 없는 경우에만 작동함) LV장치 크기가 30GB로 표시됩니다. 더 작은 30GB LV에서 FS 크기를 50GB로 조정하는 이유는 무엇입니까? 아니면 여기에 다른 문제가 있습니까 xfs ?

sdb                      8:16   0   50G  0 disk
└─datavg-optdata    253:3    0   30G  0 lvm  /opt/data

누구든지 단서가 있습니까?

답변1

Frostschutz와 psusi가 이미 언급했듯이 가장 가능성이 높은 일련의 사건은 파일 시스템과 여기에 포함된 LV의 크기가 처음에 50G였다는 것입니다.

xfs_growfs명령은 일반적으로 기본 저장 장치(LV, 파티션 또는 전체 디스크)의 크기와 일치하도록 파일 시스템을 늘립니다. 바이너리에서 사용 가능한 메시지는 xfs_growfs파일 시스템의 새 크기를 직접 지정하더라도 답변에 대한 온전성 검사를 수행하므로 기본 LV의 한계를 넘어 파일 시스템을 늘리는 것이 불가능함을 나타내는 것 같습니다.

lvreduce아마도 누군가 명령( -r구현된 경우 옵션 없이)이 LV만 축소하고 파일 시스템은 축소되지 않으며 XFS 파일 시스템에는 축소 기능이 없고 확장만 있다는 사실을 잊었을 가능성이 높습니다 .

LVM을 사용하면 기존 파일 시스템과 LV를 쉽게 확장할 수 있으므로 이를 줄이는 것도 마찬가지로 쉽다고 생각할 수 있습니다. 불행하게도 이는 전적으로 사실이 아닙니다. 파일 시스템을 줄이는 것이 확장하는 것보다 더 까다로운 경우가 많습니다.

이제 datavg-optdataLV가 50G에서 30G로 줄어들면 파일 시스템 끝의 20G 블록이 끊어진다는 뜻이다. 축소된 공간을 즉시 다른 목적으로 사용하는 경우, 그 안의 데이터는 손실됩니다.

관련 정보