개요
세 번째는 LVM과 Cron에 대해서 설명하겠습니다.
블록 장치
과제의 해당 내용을 수행하려면 lsblk명령어를 가장 먼저 접할겁니다. lsblk명령어는 리눅스 시스템에서 사용되는 유틸리티 명령어 입니다. 블록 장치에 대한 정보를 표시하는데 사용되며, 블록 장치의 계층 구조를 트리 형태로 표시합니다. 각 장치에는 이름, 마운트된 디렉토리 경로, 크기 등의 정보가 표시됩니다.
- 블록 장치 : 블록 장치란 하드 디스크, SSD, USB 드라이브 등과 같은 저장 장치를 의미합니다.
- 마운트 : 블록 장치를 특정 디렉토리에 연결하여 해당 디렉토리에 저장된 파일 시스템을 사용할 수 있게 하는 과정입니다.
블록 장치
디스크의 명칭의 규칙
리눅스에서 디스크는 hda와 sda, 또 알파벳과 숫자로 구분할 수 있습니다. 옛 IDE 방식을 사용한다면 'h'를 첫 번째 문자로 갖습니다. SCSI, SATA 방식을 사용한다면 's'를 갖습니다. 두 번째 문자 'd'는 디스크를 뜻하고, 세 번째 문자 'a'는 블록 장치의 순서입니다. 물리적인 디스크가 여러개 내장되어 있다면 sda, sdb, sdc, ... 처럼 나타날 것입니다.
lsblk 출력문 분석
lsblk
해당 명령어를 입력해 봅시다. 그럼 다음과 같이 정리할 수 있습니다.
- sda1 : 약 500mb의 공간. 마운트가 /boot로 되어있는걸로 보아 os가 설치되어 있는 주 파티션.
- sda2 : 1K의 작은 공간. 마운트 포인트는 알 수 없음.
- sda5 : 논리 파티션. 과제의 요구사항에 따라 여러 파티션을 가지고 있음.
확실하게 알고가야 할 것은 sda2와 sda5입니다. 블록 장치를 파티션할 때 LVM은 구성했지만 왜 sda2가 생성되었는지 이해해야 합니다. 다음의 개념을 먼저 받아들입시다.
- 블록 장치 파티션은 하나의 블록 장치를 여러 개의 논리적인 영역으로 나누는 것을 의미합니다. 각 파티션은 독립적인 파일 시스템을 가지며, 각각의 파티션은 독립적으로 관리될 수 있습니다. 파티션은 크게 주 파티션, 확장 파티션, 논리 파티션으로 나눌 수 있습니다. 주 파티션은 블록 장치에서 직접 파티션을 생성하고 사용하는 방식입니다. 일반적으로 하나의 블록 장치에는 4개의 주 파티션까지만 생성할 수 있습니다. 각 주 파티션은 독립적인 파일 시스템을 가질 수 있으며, 각각을 별도의 드라이브로 인식합니다. 주 파티션은 주로 운영 체제 설치나 데이터 저장에 사용됩니다.
- 확장 파티션은 주 파티션 내에 생성되는 특수한 종류의 파티션입니다. 확장 파티션은 추가적인 논리 파티션을 생성하기 위해 사용됩니다. 주 파티션 중 하나를 확장 파티션으로 지정하면, 해당 확장 파티션 안에 논리 파티션을 생성할 수 있습니다. 확장 파티션은 주 파티션 내에서 논리적으로 파티션을 분할하는 데 사용됩니다. 확장 파티션은 주로 블록 장치의 용량을 효율적으로 관리하기 위해 사용됩니다. 주 파티션에서 1개만 생성이 가능합니다. 확장 파티션은 저장공간이 없습니다.
- 논리 파티션은 확장 파티션 안에서 생성되며, 물리 디스크와 마찬가지로 데이터 저장이 가능한 가상의 디스크입니다. 총 생성 개수는 환경마다 다르며, 확장 파티션 내에 생성되기 때문에 파티션 번호는 5번 이후 부터 사용합니다.
'parted' 패키지를 설치하고 명령어를 입력하면 쉽게 이해할 수 있습니다.
결론은 'sda2'가 확장 파티션이고 'sda5'는 논리 파티션으로 'sda2'에 속해 있다는 것입니다. 논리 파티션을 생성하려면 확장 파티션이 필요합니다. 주 파티션 속 확장 파티션이 존재하고 확장 파티션 속 논리 파티션이 존재한다고 이해하면 됩니다. 따라서 LVM을 구성했을 때 자동적으로 확장 파티션인 'sda2'가 생성된 것입니다. 'sda2'의 독립적인 공간은 필요 없이 모든 공간을 논리 볼륨에 할당했으므로 공간은 1k밖에 남지 않은 것입니다. 'parted' 명령어를 입력하면 시각적으로 확인할 수 있습니다.
LVM(Locigal Volume Manager)
논리 볼륨 관리자 (Logical Volume Manager, LVM)는 리눅스 운영 체제에서 디스크 관리를 용이하게 하는 기술입니다. LVM은 물리적인 디스크 공간을 논리적인 볼륨으로 추상화하여 유연한 디스크 관리를 가능하게 합니다.
LVM을 사용하면 여러 개의 물리적인 디스크를 하나의 논리적인 그룹으로 결합할 수 있습니다. 이 논리적인 그룹은 물리적인 디스크 공간의 합으로 간주되며, 이를 이용하여 다양한 크기의 논리 볼륨을 생성할 수 있습니다.
논리 볼륨은 파일 시스템을 위한 가상 디스크로 사용될 수 있습니다. 논리 볼륨은 파티션과 유사한 개념이지만, 크기를 동적으로 조정할 수 있으며 여러 개의 물리적인 디스크에 걸쳐 분산되어 저장될 수도 있습니다. 이를 통해 용량의 유연한 관리, 스냅샷, 볼륨 복제 등의 기능을 제공합니다.
목적
1. 용량 관리의 유연성: LVM은 물리적인 디스크 공간을 논리적인 볼륨으로 추상화합니다. 이를 통해 용량을 동적으로 조정할 수 있으며, 볼륨 그룹에서 볼륨을 추가하거나 제거할 수 있습니다. 따라서, 디스크 공간의 유연한 관리가 가능하며, 용량 부족 문제를 해결할 수 있습니다.
2. 볼륨 확장: LVM은 볼륨 그룹에 새로운 물리적인 디스크를 추가하거나 기존 디스크를 확장할 수 있는 기능을 제공합니다. 이를 통해 필요에 따라 스토리지 용량을 확장할 수 있으며, 디스크의 재구성 없이 용량을 늘릴 수 있습니다.
3. 논리 볼륨 스냅샷: LVM은 스냅샷이라는 기능을 제공하여 데이터의 백업과 롤백을 간편하게 수행할 수 있습니다. 스냅샷은 특정 시점의 데이터 상태를 보존하고, 필요할 때 이전 상태로 복원할 수 있는 기능을 제공합니다.
4. 데이터 이관과 이중화: LVM은 데이터를 여러 개의 물리적인 디스크에 분산하여 저장할 수 있습니다. 이를 통해 데이터의 이중화 및 고가용성을 구현할 수 있으며, 장애 발생 시 데이터의 손실을 최소화할 수 있습니다.
5. 간편한 볼륨 이동: LVM을 사용하면 볼륨을 다른 디스크로 이동할 수 있습니다. 이를 통해 데이터의 위치를 변경하거나 디스크를 교체할 때도 데이터 이동 작업을 간단하게 수행할 수 있습니다.
마운트 포인트
- /var : 일반적으로 가변적인 데이터를 저장하는 디렉토리입니다. 예를 들어, 로그 파일, 인터넷 캐시, 데이터베이스 등이 저장됩니다. 따라서
- /srv : 시스템에서 제공하는 서비스에 대한 데이터를 저장하는 디렉토리입니다. 예를 들어, 웹 서버에서 사용되는 HTML 파일이나 이미지 파일 등이 저장됩니다.
- /tmp : 일시적인 파일을 저장하는 디렉토리입니다. 시스템에서 동작하는 많은 프로그램들이 /tmp를 사용하므로, 이 디렉토리의 용량은 충분히 유지되어야 합니다.
- /var/log : 시스템 로그 파일을 저장하는 디렉토리입니다. 시스템에서 발생하는 모든 로그 파일이 var/log에 저장되므로, 이 디렉토리의 용량은 충분히 유지되어야 합니다.
cron
리눅스에서 사용하는 스케줄러의 정규 표현식입니다. 주기적으로 실행되어야 하는 명령어를 표현식에 맞게 설정하면 자동으로 실행시킬 수 있습니다. 다음과 같이 구성할 수 있습니다.
* * * * * command
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday is both 0 and 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
'42Seoul' 카테고리의 다른 글
Pipex - Mandatory (0) | 2023.08.11 |
---|---|
Push_Swap - Mandatory (0) | 2023.07.09 |
Born2beroot - UFW, SSH, Sudo (0) | 2023.05.17 |
Born2beroot - Virtual Machine, VirtualBox, Debian, Rocky (0) | 2023.05.17 |
FT_PRINTF - Bonus (0) | 2023.05.15 |
댓글