resize2fs가 지정된 범위가 끝난 후 먼저 블록을 이동하여 파티션을 축소하는 이유는 무엇입니까? 이것이 바뀔 수 있습니까?

resize2fs가 지정된 범위가 끝난 후 먼저 블록을 이동하여 파티션을 축소하는 이유는 무엇입니까? 이것이 바뀔 수 있습니까?

resize2fs현재 LVM 볼륨 그룹의 빈 공간을 복구하기 위해 상당히 큰 파티션을 축소하고 있습니다 .

내가 이해하는 바에 따르면 파일 시스템 축소 작업은 (파일 시스템의 마지막 블록)과 (작업이 완료된 후 마지막 블록이 되어야 하는 블록) 사이의 각 블록에 대해 다음을 수행합니다.

  1. 어떤 파일에서 사용되는지 확인
  2. 그렇다면 해당 블록과 해당 파일에서 사용되는 모든 블록을 적합한 파티션의 가장 빠른 위치에 복사하십시오.
  3. 해당 파일 블록의 레코드가 이제 블록의 새 위치를 가리키도록 메타데이터를 업데이트합니다.

이 단계는 의존하지 않는 것 같습니다주문하다거기에 있는 블록 작업을 수행하세요. 양쪽 끝에서 블록을 움직이기 시작할 수 있으며 어느 방향으로든 작동합니다. 그러나 이 경우:

+---------------------------+--------------------------------------------+
|    resize target          |      space to move blocks away from        |
|                           |                                            |
+-----------+---------------+---------+------+---------------+-----+-----+
|   used    |                         |  to  |               | to  |     |
|  space at |                         | move |               | move|     |
|   start   |                         | (1)  |               | (2) |     |
+-----------+-------------------------+------+---------------+-----+-----+

... resize2fs먼저 (1) 이동한 다음 (2) 이동합니다.

왜 그런 겁니까? 나에게 있어 (2)를 먼저 수행할 때의 장점은 사용자가 크기 조정 작업을 완료하는 데 너무 오랜 시간이 걸린다고 생각하여 중간에 중지하면 일부 진행이 이루어지며 더 큰 대상 크기로 크기 조정을 선택하면 된다는 것입니다. (더 작은 축소) 다시 시도하면 다음번에는 할 일이 줄어들 것입니다.

내 경우에는 LVM 볼륨을 축소하고 대체 LVM 범위를 사용할 수 있는 한 부분적으로 크기를 조정할 수 있지만 그렇게 하려면 파일 시스템 끝에 공간을 확보해야 하므로 명령을 resize2fs반복적으로 실행해 왔습니다. 작은 증분으로 볼륨을 수동으로 축소합니다. 더 좋은 방법이 있나요?

이 문제마찬가지로 다른 방향에서 파일 시스템 공간을 복구하는 방법에 관한 것입니다.시작최종적이지 않고 부분적입니다.

관련 정보