lsblk
lsblk는 현재 linux block device의 정보를 확인할 수 있는 명령어이다.
아래와 같이 Device의 계층 구조와 lvm과의 연계를 Tree 구조로 보여주어 굉장히 유용하다.
[root@hackerpark]# lsblk -b
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 2319450112 0 rom /run/media/hackerpark/Rocky-8-7-x86_64-dvd
xvda 202:0 0 53687091200 0 disk
├─xvda1 202:1 0 1073741824 0 part /boot
└─xvda2 202:2 0 52612300800 0 part
├─rl-root 253:0 0 48381296640 0 lvm /
└─rl-swap 253:1 0 4227858432 0 lvm [SWAP]
df
df는 현재 linux의 filesystem 정보를 확인할 수 있는 명령어이다.
아래와 같이 Linux의 Filesystem 정보와 Mount 정보, 현재 사용량을 확인 할 수 있어서 개인적으로도 굉장히 자주 사용되는 명령어다.
[root@hackerpark]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1880020 0 1880020 0% /dev
tmpfs 1899768 0 1899768 0% /dev/shm
tmpfs 1899768 173364 1726404 10% /run
tmpfs 1899768 0 1899768 0% /sys/fs/cgroup
/dev/mapper/rl-root 47224292 43316632 3907660 92% /
/dev/xvda1 1038336 196048 842288 19% /boot
overlay 47224292 43316632 3907660 92% /var/lib/docker/overlay2/0fa5a53c9c35d24734662342344b5b32ffd4e8b80cb3e7f110282e1a9a71db90/merged
/dev/sr0 2264744 2264744 0 100% /run/media/hackerpark/Rocky-8-7-x86_64-dvd
overlay 47224292 43316632 3907660 92% /var/lib/docker/overlay2/2eab62cd11b8cdecfda6f4810f972ab463c8f44b82724b07107d527b81489d52/merged
tmpfs 379952 0 379952 0% /run/user/0
tmpfs 379952 12 379940 1% /run/user/42
차이점(lsblk vs df)
위에서 공통적으로 확인 가능한 xvda1을 기준으로 데이터를 비교해 보았다.
[root@hackerpark]# df | grep xvda1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 1038336 196048 842288 19% /boot
[root@hackerpark]# lsblk -b | grep xvda1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
├─xvda1 202:1 0 1073741824 0 part /boot
(편의상 df와 lsblk의 Data Type을 기록했다.)
위의 데이터를 토대로 df 데이터를 먼저 확인해보면 xvda1 Filesystem의 Size는 1038336(KB)가 나온것을 알 수 있다.
이를 GB로 환산해보면 다음과 같다.
1038336(KB) / 1024 / 1024 = 0.990234375(GB)
1GB에 살짝 못미치는 크기인것을 확인할 수 있다.
다음은 lsblk 데이터를 확인하면 1073741824(Byte)가 나온것을 알 수 있다.
이를 GB로 환산해보면 다음과 같다.
1073741824(Byte) / 1024 / 1024 / 1024 = 1(GB)
정확하게 1GB로 떨어지는것을 확인할 수 있다.
결과를 비교하자면 df(filesystem)로 확인한 size가 lsblk(device)로 확인한 size보다 작다는 결론이 나온다.
분석
Device와는 다르게 Filesystem은 메타데이터를 저장하고 관리할 공간이 필요한데, Filesystem은 이를 위해서 Disk 파티션의 일부분을 별도로 사용한다.
메타데이터에는 Directory 구조, 접근 권한, 수정 날짜 등의 정보가 포함되어있다.
또한 ext4와 같은 Filesystem은 일반 사용자가 사용할 수 없는 일부 Disk 공간을 예약하여 (약 5%정도) Disk Full과 같은 상황에서도 동작할 수 있는 메커니즘이 존재한다.
이 외에도 Filesystem 손상 또는 Disk에 문제가 있는 경우도 두 명령어의 결과값의 차이를 가지고 올 수 있다고 한다.
결론
시스템의 정보를 어떤 관점에서 보느냐에 따라서 데이터에 차이가 있는것을 확인했다.
따라서 현재 시스템 또는 상황에 맞춰서 적절한 데이터를 확인하는것이 좋다.
'UNIX (AIX, LINUX, HP-UX, SOLARIS, ...) > etc' 카테고리의 다른 글
Binary 를 통한 Build 환경 정보 알아내는 방법 (windows, aix, hpux, linux, sun) (0) | 2022.12.27 |
---|---|
[Linux] Rocky 9 SSH Root Login Enable or Disable설정 (0) | 2022.12.26 |
[Linux] CentOS7 OpenJDK 설치 (0) | 2022.08.18 |
[AIX] 환경변수 설정 (0) | 2022.08.16 |
[AIX] DNS 설정 (0) | 2022.08.16 |