리눅스 장치 관련 문제는 단골인듯! 꼭 알아두기!
하드 디스크는 용량이 부족할 경우에 디스크를 추가 장착하여 용량을 늘릴 수 있다. 장착된 하드디스크는 자동인식되므로 인식 여부만 확인한 뒤에 파티션 작업, 파일 시스템 생성, 디렉터리 생성, 마운트 등의 작업을 거치면 된다.
디스크 인식 여부 확인 -> 파티션 작업 -> 시스템 재부팅 -> 파일 시스템 생성 -> 디렉터리(마운트 포인트) 생성 -> 마운트 작업 -> 마운트 및 용량 확인 -> 부팅 시에 자동 마운트 되도록 /etc/fstab 파일에 등록
초기에는 LPGng
를 사용했으나 최근 배포판에서는 CUPS
라는 시스템을 추가로 사용하고 있다. CUPS는 애플이 개발한 오픈 소스 시스템으로 유닉스 계열의 시스템을 프린트 서버로 사용할 수 있게 해준다. CUPS는 HTTP 기반의 IPP
(Internet Printing Protocol)을 사용하고 SMB
프로토콜도 부분적으로 지원한다. 간련 명령어도 BSD, System V 계열 모두 사용가능하고 사용자 및 호스트 기반의 인증을 제공한다.
예) lpr -# 2 -P lp test.txt
: test.txt 라는 문서를 lp라는 이름을 가진 프린터로 2장을 출력한다.
예) lpq
: 프린터 큐의 작업 목록 출력
예) lprm 3
: 3번 작업을 취소
lprm -
: 현재 사용자가 수행한 인쇄작업 모두 취소
예) lpc
: Control Program으로 접근 후 지정한 명령어를 사용
예) lp /etc/passwd
: /etc/passwd의 내용을 출력
lp -n 2 /etc/passwd
: 2매 출력
예) lpstat -p
프린터의 상태 출력.
lpstat
프린터 큐의 상태를 출력
예) cancel printer-7
: 요청아이디가 printer-7인 작업 삭제
ALSA는 사운드 카드를 자동으로 구성하게 하고, 다수의 사운드 장치를 관리하는 것을 목적으로 하고 있다.
리눅스 및 유닉스 계열 운영체제에서 사운드를 만들고 캡처하는 인터페이스
GPL 라이선스
를 리눅스 및 유닉스 계열뿐만 아니라 OS/2, Microsoft Windows도 지원한다.
X-windows
기반으로 만든 프로그램이다. xsane
이라고 입력하면 실행할 수 있다.
CentOS7에 LVM은 lvm2라는 패키지 이름으로 설ㄹ치되어있고, 리눅스 설치 시에 자동 파티션을 생성하면 LVM 기반으로 할당된다. LVM의 구성은 PV -> VG -> LV
순으로 순차적으로 구성한다.
LV의 이름을 변경
예) lvrename /dev/lvm0/ldata1 /dev/lvm00/data1
: LV의 이름을 두번째 인자로 변경한다.
lvrename lvm0 ldata1 data1
: lvm0의 ldata1의 명칭을 data1으로 바꾼다.
LV를 제거하는 명령어. 미리 언마운트를 해야한다.
예) lvremove /dev/lvm0/ldata3
VG의 속성을 변경하는 명령어.
예) vgchange -a y lvm0
: lvm0이라는 볼륨 그룹을 활성화시킨다.
vgchange -a n lvm0
: 볼륨그룹을 비활성화 시킨다.
vgchange -l 100 lvm0
: 볼륨그룹의 최대 LV 수를 100개로 지정한다.
VG 제거하는 명령이다. 해당 VG가 사용중이면 제거가 되지 않으므로 언마운트 후에 속해있는 LV를 전부 제거해야 한다.
예) vgremove lvm0 : lvm0이라는 VG를 삭제한다.
물리적 확장인 PE를 이동시키는 명령.
예) pvmove -v /dev/sdb1
: 해당 디렉토리의 정보를 출력
pvmove /dev/sdb1 /dev/sdc1
: 해당 PE의 내용을 그대롤 복사한다.
특정 장치의 파일 시스템을 조정하고 점검하는 명령. ext2,3, ReiserFS, XFS 파일 시스템을 지원
예) fsadm -v check /dev/lvm0/ldata1
: 해당 경로를 검사하고 관련 정보를 자세히 출력한다.
fsadm resize /dev/lvm0/ldata1
: 검사해서 크기를 조정한다.
fdisk /dev/sdb
: 파티션 생성 및 속성 변경pvcreate /dev/sdb1
, pvcreate /dev/sdb2
: 물리적 볼륨 생성(PV)vgcreate lvm0 /dev/sdb1 /dev/sdb2
: 특정한 볼륨그룹(VG)으로 구성vgdisplay -v
: VG 확인lvcreate -L 1200M -n ldata1 lvm0
: 논리적 볼륨 생성lvscan
: LV 생성 정보 확인vgdisplay -v
: VG의 사용량 정보 확인mkfs.xfs /dev/lvm0/ldata1
: 파일 시스템 생성mkdir /data1
: 마운트 할 디렉터리 생성mount -t xfs /dev/lvm0/ldata1 /ldata1
: 마운트 실행df -h
: 확인vi /etc/fstab
-> /dev/lvm0/ldata1 /ldata1 xfs defaults 0 0
: 시스템 재부팅 시에도 계속 사용하려면 /etc/fstab
에 등록LVM의 가장 특징이 사용중에도 데이터 이동 없이 용량 증가가 가능하다는 점이다. 절차를 간단히 정리해보면 다음과 같다. (예시는 /ldata1
영역에 1GB를 증설하는 것이다.)
pvcreate /dev/sdb3
vgextend lvm0 /dev/sdb3
: 볼륨 그룹에 포함시킨다.vgdisplay -v
: 포함되었는지 확인umount /dev/lvm0/ldata1
: mount되어있다면 언마운트를 실행lvextend -L +1G /dev/lvm0/ldata1
: lvextend 명령을 이용해서 확장한다.lvscan
lvdisplay
증가된 용량을 확인fsadm
명령을 사용하여 크기를 늘려준다.fsadm resize /dev/lvm0/ldata1
mount -t xfs /dev/lvm0/ldata1 /ldata1
df -h
Linux Software RAID 를 보통 md(Multiple Drive)라고 부르는데, CentOS7 버전에서는 mdadm 이라는 패키지를 이용해서 Software RAID를 구성한다. 현재 mdadm으로 구성할 수 있는 RAID 레벨에는 1,4,5,6,10이 있다.
mdadm [options] raid-device component-devices
예) mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdc1
/dev/sdb1
, /dev/sdc1
을 RAID-0으로 하여 /dev/md0
을 생성한다.
mdadm -D /dev/md0
/dev/md0
의 자세한 정보를 보여준다.
mdadm -S /dev/md0
/dev/md0
으로 구성된 배열을 비활성화하여 모든 자원을 해제한다.
mdadm --detail --scan
작동 중인 장치를 찾아 관련 정보를 출력한다.
mdadm /dev/md1 -f /dev/sdb6
/dev/md1
의 /dev/sdb6
장치에 강제적으로 오류를 발생시킨다.
mdadm /dev/md2 -r /dev/sdb8
/dev/md2
에서 /dev/sdb8
장치를 제거한다.
mdadm /dev/md2 -a /dev/sdb14
/dev/md2
에 /dev/sdb14
장치를 추가한다.
RAID도 본래의 특성을 살리기 위해서는 물리적으로 다른 디스크 장치를 묶어서 구성해야 한다. 예를들면 /dev/sdb, /dev/sdc1, /dev/sdd1 을 묶어서 구성해야 한다. 실습을 위해서는 파티션을 분할한 후 구성하도록 한다.
fdisk /dev/sdb
: 파티션 생성fdisk -l /dev/sdb
-> /dev/sdb1
, /dev/sdb2
mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2
mkfs.xfs /dev/md0
mkdir /rdata0
mount -t xfs /dev/md0/rdata0
df -h
/etc/fstab
파일에 등록.vi /etc/fstab
/dev/md0 /rdata0 xfs defaults 0 0
RAID 관련 정보는 /proc/mdstat
에 저장된다. 또한 파티션 정보 /proc/partitions
에서 장치명과 용량을 확인할 수 있다.
RAID-0
의 기반 기술인 striping
은 처리 속도를 높이기 위한 기술로서 두 개의 디스크 중 하나라도 오류가 발생하면
데이터가 손실된다. RAID-1
의 기반 기술인 mirroring
은 두 개의 디스크에 동일한 데이터를 모두 저장하는 방식으로 하나의 디스크 오류를 허용
한다.RAID-5
는 하나의 디스크를 패리티로 구성해서 하나의 디스크 오류를 허용RAID-6
는 2차 패리티로 구성해서 두 개의 디스크 오류를 허용한다.RAID를 사용하는 시스템의 디스크는 대부분 핫 스왑 베이(Hot swap bay)라는 형태로 전원을 끄지 않아도 외부에서 손쉽게 디스크를 교체할 수 있다. 결함이 허용되는 RAID 레벨에서는 오류가 발생한 디스크를 제거하고 새로운 디스크를 장착하면 자동으로 복구가 된다.
예) RAID-5를 기반으로 디스크 복구
1) 오류 발생 디스크 제거
mdadm /dev/md2 -r /dev/sdb8
2) 새로운 디스크 장착
/dev/sdb14
를 새로운 디스크로 가정한다.mdadm /dev/md2 -a /dev/sdb14
3) 상태 확인
mdadm -D /dev/md2