UUID(Universally Unique IDentifier)
UUID는 16Byte(128Bit)로 이루어진 규격화된 숫자이다.
이론적으로 가능한 UUID의 총 수는 3 X 10^38 이다. UUID 값에는 UTC 타임을 기반으로 시각정보도 자동으로 생성하여 반영한다.
그냥도 겹치는건 거의 불가능한데 생성시 시간값을 반영하므로 일생동안 겹치는 숫자를 눈으로 목격하는건 불가능하다.
UUID는 중앙집중식의 컨트롤 없이 분산 시스템에서 정보를 유일하게 식별할 수 있도록 인간이 아닌 컴퓨터를 위해 만들어 졌다.
디스크 맵핑으로 활용
CentOS 6.x 부터는 디스크 마운트를 위한 설정 파일인 /etc/fstab과 /etc/grub.conf에서 기본으로 UUID로 디스크를 맵핑하여 마운트 되도록 설정이 되어있다. 이는 서버에 연결된 디스크가 네트워크 형태로 연결되어 마운트를 하는 경우 디바이스 순서가 바뀌거나 라벨명이 겹치는 등의 문제점을 최소화 할 수 있는 방법이라고 할 수 있겠다. 하지만 디스크가 시스템 내에 연결되어 있다면 기존의 디바이스명이나 라벨명으로 맵핑해도 상관은 없다.
UUID 값 확인하기
UUID 값은 파일시스템 생성과 동시에 메타데이터(슈퍼블럭)로 디스크내에 존재한다.
슈퍼블록은 파티션에 파일시스템을 생성할때 다수를 만들어 놓으므로 배드섹터 등으로 UUID 값이 날라갈 확률은 미미하다.
디스크들의 UUID 값을 한눈에 보려면 쉘에서 아래 디렉토리를 보면된다. 싱볼링링크 형태로 UUID 파일이 존재하는걸 볼 수 있다.
$ ls -la /dev/disk/by-uuid
또는
$ blkid 또는 blkid -o full -S UUID
그리고 디스크 파티션별로 확인을 위해선 아래처럼 확인.
$ tune2fs -l /dev/sda1
Filesystem UUID: fcd8c4de-c92e-4edf-99cc-13a5f47ab2e1
NIC의 UUID
또한 NIC 설정파일인 ifcfg-ethX(OS 설치시 잡힌 장치만)내에 UUID 값이 존재를 하는데 CentOS 6.x 이상에서 발견된다.
이것은 단순히 ifcfg-ethX 설정파일을 구분 짓기 위한 값으로,
새로운 NIC 장치를 추가 장착하고 ifcfg-ethX 설정파일을 만들때, 필요하다면 사용자가 쉘에서 uuidgen 명령어를 통해 나온 랜덤한 UUID 값을 설정파일에 붙혀 넣기 하면 된다. 그러나 ifcfg-ethX 파일내의 UUID 값은 구지 필요는 없다.