포스트

[Linux] 스토리지 용량이 동일한데 fdisk에서 End값이 다른 이유

ISSUE

고객사에서 기존에 200G의 스토리지를 확장하여 사용중이었으나, 신규 증설을 위해 200G 디스크를 하나 더 확장하기로 결정했습니다.

스토리지를 확장한 후 기존 스토리지와 신규 스토리지를 fdisk 명령어로 확인해보니 Start와 End 값이 다르게 출력됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 기존 스토리지
Disk /dev/sdb: 214.7 GB, 214749020160 bytes
106 heads, 45 sectors/track, 87931 cylinders
Units = cylinders of 4770 * 512 = 2442240 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x*******

Device Boot        Start   End    Blocks Id System
/dev/sdb1              1 87932 209714816 83  Linux     # <----- End 87932

--------------------------------------------------------------

# 신규 스토리지
Disk /dev/sdc: 214.7 GB, 214749020160 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc*******

Device Boot        Start   End     Blocks Id System
/dev/sdc1              1 26108 209712478+ 83  Linux    # <----- End 26108

Solution?

결론부터 말하자면 두 스토리지는 모두 정상이며, 전체 스토리지 용량을 사용중인 상태입니다.

기존 스토리지인 /dev/sdb1와 End값이 달라서 신규 스토리지/dev/sdc1에 이상이 있는 것처럼 보이지만, 디스크의 CHS구조가 다르기 때문에 End값이 다르게 출력되는 것을 볼 수 있습니다.

CHS구조

CHS 구조는 하드 디스크의 물리적인 구조를 헤더(Headers), 섹터(Sectors), 실린더(Cylinders)로 나누어 구분하는 방식을 말합니다. 하드웨어 제조사에서 하드 디스크 구조를 어떻게 설계하느냐에 따라 CHS 값이 결정됩니다.
(개념이 복잡해 내용이 길어질 수 있어 이 글에서는 생략합니다.)

같은 디스크 용량이더라도 CHS의 물리적인 배치에 따라 fdisk 명령어를 입력했을 때 StartEnd값이 달라질 수 있습니다.

fdisk에서 파티션의 StartEnd값은 하드 디스크의 Cylinder 번호로 출력되며, 파티션을 나누지 않고 스토리지 전체를 사용하는 경우 Start 값은 1, Cylinder 값은 마지막 번호가 출력되어야 합니다.

End값이 실린더 번호와 동일하지 않은 경우 LBA방식으로 데이터를 처리하는 디스크로, 정확히 맞지 않더라도 디스크의 모든 공간을 사용한다고 볼 수 있습니다.
최근에 사용되는 디스크는 대부분 LBA 방식으로 데이터를 처리합니다.

하드 디스크를 사용하는 경우 fdisk 명령으로 CHS값을 확인할 수 있으므로 Cylinder값과 End값이 일치하는지 확인하여 문제가 없는지 살펴봅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 기존 스토리지
106 heads, 45 sectors/track, 87931 cylinders

Device Boot        Start   End    Blocks Id System
/dev/sdb1              1 87932 209714816 83  Linux

# -----> 87931 cylinders, 87932 End

--------------------------------------------------------------

# 신규 스토리지
255 heads, 63 sectors/track, 26108 cylinders

Device Boot        Start   End     Blocks Id System
/dev/sdc1              1 26108 209712478+ 83  Linux

# -----> 26108 cylinders, 26108 End

신규 스토리지의 실린더 값과 End값이 일치하므로 스토리지는 정상이라고 볼 수 있습니다.

Reference

이 포스트는 저작권자의 CC BY 4.0 라이센스를 따릅니다.