[리눅스마스터1급] 2.2.2 주변 장치 관리

cateto·2022년 3월 6일
0

li-master1

목록 보기
13/27
post-thumbnail

2.리눅스 시스템 관리 / 2.장치관리 / 2.2.2 주변 장치 관리

리눅스 장치 관련 문제는 단골인듯! 꼭 알아두기!

주변 장치 설정

디스크 확장

하드 디스크는 용량이 부족할 경우에 디스크를 추가 장착하여 용량을 늘릴 수 있다. 장착된 하드디스크는 자동인식되므로 인식 여부만 확인한 뒤에 파티션 작업, 파일 시스템 생성, 디렉터리 생성, 마운트 등의 작업을 거치면 된다.

디스크 인식 여부 확인 -> 파티션 작업 -> 시스템 재부팅 -> 파일 시스템 생성 -> 디렉터리(마운트 포인트) 생성 -> 마운트 작업 -> 마운트 및 용량 확인 -> 부팅 시에 자동 마운트 되도록 /etc/fstab 파일에 등록

프린터

프린팅 시스템

초기에는 LPGng를 사용했으나 최근 배포판에서는 CUPS라는 시스템을 추가로 사용하고 있다. CUPS는 애플이 개발한 오픈 소스 시스템으로 유닉스 계열의 시스템을 프린트 서버로 사용할 수 있게 해준다. CUPS는 HTTP 기반의 IPP(Internet Printing Protocol)을 사용하고 SMB 프로토콜도 부분적으로 지원한다. 간련 명령어도 BSD, System V 계열 모두 사용가능하고 사용자 및 호스트 기반의 인증을 제공한다.

lpr : 프린터 작업을 요청하는 명령이야.

예) lpr -# 2 -P lp test.txt : test.txt 라는 문서를 lp라는 이름을 가진 프린터로 2장을 출력한다.

lpq : 프린터 큐의 작업 목록을 출력한다.

예) lpq : 프린터 큐의 작업 목록 출력

lprm : 프린터 큐에 대기 중인 작업을 삭제.

예) lprm 3 : 3번 작업을 취소
lprm - : 현재 사용자가 수행한 인쇄작업 모두 취소

lpc : 프린터나 프린터 큐를 제어할 때 사용.

예) lpc : Control Program으로 접근 후 지정한 명령어를 사용

lp : System V 계열에서 사용하는 인쇄 명령으로 BSD 계열의 lpr 명령어와 유사하다.

예) lp /etc/passwd : /etc/passwd의 내용을 출력
lp -n 2 /etc/passwd : 2매 출력

lpstat : 프린터 큐의 상태를 출력해주는 명령이다.

예) lpstat -p 프린터의 상태 출력.
lpstat 프린터 큐의 상태를 출력

cancel : 프린트 작업을 취소하는 명령으로, lpstat을 이용하여 먼저 요청 ID를 확인해야 한다.

예) cancel printer-7 : 요청아이디가 printer-7인 작업 삭제

사운드 카드

ALSA

ALSA는 사운드 카드를 자동으로 구성하게 하고, 다수의 사운드 장치를 관리하는 것을 목적으로 하고 있다.

OSS

리눅스 및 유닉스 계열 운영체제에서 사운드를 만들고 캡처하는 인터페이스

스캐너

SANE

GPL 라이선스를 리눅스 및 유닉스 계열뿐만 아니라 OS/2, Microsoft Windows도 지원한다.

XSANE

X-windows 기반으로 만든 프로그램이다. xsane이라고 입력하면 실행할 수 있다.

LVM

CentOS7과 LVM

CentOS7에 LVM은 lvm2라는 패키지 이름으로 설ㄹ치되어있고, 리눅스 설치 시에 자동 파티션을 생성하면 LVM 기반으로 할당된다. LVM의 구성은 PV -> VG -> LV 순으로 순차적으로 구성한다.

LVM 관련 명령어

pvscan : PV의 정보를 출력하는 명령어이다.

vgscan : VG의 정보를 출력하는 명령어이다.

pvcreate : PV를 생성하는 명령어이다.

vgcreate : 볼륨 그룹을 생성하는 명령어. 생성된 PV를 포함시키며 생성한다.

vgdisplay : 볼륨그룹의 속성과 정보를 보여줌

lvcreate : 볼륨 그룹 안에 LV를 생성

lvscan : 전체 디스크에 있는 LV를 찾는다.

lvdisplay : LV의 속성 정보를 출력

vgextend : VG에 PV를 추가하여 VG를 확장할 때 사용.

vgreduce : VG에 있는 PV를 삭제하는 명령어. 물론 해당 PV의 PE가 할당되어있으면 삭제가 안된다.

lvextend : LV의 용량을 늘린다.

lvreduce : LV의 용량을 줄인다. 줄이는 경우에 데이터 파괴를 주의

lvrename

LV의 이름을 변경
예) lvrename /dev/lvm0/ldata1 /dev/lvm00/data1 : LV의 이름을 두번째 인자로 변경한다.
lvrename lvm0 ldata1 data1 : lvm0의 ldata1의 명칭을 data1으로 바꾼다.

lvremove

LV를 제거하는 명령어. 미리 언마운트를 해야한다.
예) lvremove /dev/lvm0/ldata3

vgchange

VG의 속성을 변경하는 명령어.
예) vgchange -a y lvm0 : lvm0이라는 볼륨 그룹을 활성화시킨다.
vgchange -a n lvm0 : 볼륨그룹을 비활성화 시킨다.
vgchange -l 100 lvm0 : 볼륨그룹의 최대 LV 수를 100개로 지정한다.

vgremove

VG 제거하는 명령이다. 해당 VG가 사용중이면 제거가 되지 않으므로 언마운트 후에 속해있는 LV를 전부 제거해야 한다.

예) vgremove lvm0 : lvm0이라는 VG를 삭제한다.

pvmove

물리적 확장인 PE를 이동시키는 명령.
예) pvmove -v /dev/sdb1 : 해당 디렉토리의 정보를 출력
pvmove /dev/sdb1 /dev/sdc1 : 해당 PE의 내용을 그대롤 복사한다.

fsadm

특정 장치의 파일 시스템을 조정하고 점검하는 명령. ext2,3, ReiserFS, XFS 파일 시스템을 지원

예) fsadm -v check /dev/lvm0/ldata1 : 해당 경로를 검사하고 관련 정보를 자세히 출력한다.
fsadm resize /dev/lvm0/ldata1 : 검사해서 크기를 조정한다.

LVM 실습

  1. fdisk /dev/sdb : 파티션 생성 및 속성 변경
  2. pvcreate /dev/sdb1, pvcreate /dev/sdb2 : 물리적 볼륨 생성(PV)
  3. vgcreate lvm0 /dev/sdb1 /dev/sdb2 : 특정한 볼륨그룹(VG)으로 구성
  4. vgdisplay -v : VG 확인
  5. lvcreate -L 1200M -n ldata1 lvm0 : 논리적 볼륨 생성
  6. lvscan : LV 생성 정보 확인
  7. vgdisplay -v : VG의 사용량 정보 확인
  8. mkfs.xfs /dev/lvm0/ldata1 : 파일 시스템 생성
  9. mkdir /data1 : 마운트 할 디렉터리 생성
  10. mount -t xfs /dev/lvm0/ldata1 /ldata1 : 마운트 실행
  11. df -h : 확인
  12. vi /etc/fstab -> /dev/lvm0/ldata1 /ldata1 xfs defaults 0 0 : 시스템 재부팅 시에도 계속 사용하려면 /etc/fstab에 등록

LVM 확장

LVM의 가장 특징이 사용중에도 데이터 이동 없이 용량 증가가 가능하다는 점이다. 절차를 간단히 정리해보면 다음과 같다. (예시는 /ldata1 영역에 1GB를 증설하는 것이다.)

  1. 새롭게 추가된 하드 디스크를 PV로 생성한다.
    예) pvcreate /dev/sdb3
  2. 생성된 PV를 VG에 포함시켜서 VG를 확장시킨다.
    예) vgextend lvm0 /dev/sdb3 : 볼륨 그룹에 포함시킨다.
    vgdisplay -v : 포함되었는지 확인
  3. LV를 확장한다.
    예) umount /dev/lvm0/ldata1 : mount되어있다면 언마운트를 실행
    lvextend -L +1G /dev/lvm0/ldata1 : lvextend 명령을 이용해서 확장한다.
    예) lvscan
    lvdisplay 증가된 용량을 확인
  4. 파일 시스템의 크기를 늘린다.
    예) LV 크기만 늘리면 파일 시스템 용량은 증가되지 않는다. 파일 시스템 입장에서는 포맷이 되지 않았기 때문에 사용가능한 용량이라고 볼 수 없다. 따라서 fsadm명령을 사용하여 크기를 늘려준다.
    fsadm resize /dev/lvm0/ldata1
  5. 증설된 용량을 확인한다.
    예) mount -t xfs /dev/lvm0/ldata1 /ldata1
    df -h

RAID

CentOS7과 RAID 구성

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 실습

RAID도 본래의 특성을 살리기 위해서는 물리적으로 다른 디스크 장치를 묶어서 구성해야 한다. 예를들면 /dev/sdb, /dev/sdc1, /dev/sdd1 을 묶어서 구성해야 한다. 실습을 위해서는 파티션을 분할한 후 구성하도록 한다.

RAID-0 구성하기 : 2개의 파티션을 사용해서 처리속도를 높이는 stripe 기반의 RAID-0을 구성한다.

  1. fdisk로 파티션 생성 및 속성 변경
    fdisk /dev/sdb : 파티션 생성
  2. 재부팅 후에 관련 장치 파일명 확인
    fdisk -l /dev/sdb -> /dev/sdb1, /dev/sdb2
  3. RAID 장치 생성
    mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2
  4. 파일 시스템 생성
    mkfs.xfs /dev/md0
  5. 마운트할 디렉터리 생성
    mkdir /rdata0
  6. 마운트 실행
    mount -t xfs /dev/md0/rdata0
  7. mount 및 df 명령으로 확인
    df -h
  8. 시스템 재부팅 후에도 계속 사용하려면 /etc/fstab 파일에 등록.
    vi /etc/fstab
    /dev/md0 /rdata0 xfs defaults 0 0

RAID 상태 확인

RAID 관련 정보는 /proc/mdstat 에 저장된다. 또한 파티션 정보 /proc/partitions에서 장치명과 용량을 확인할 수 있다.

RAID 결함 허용 테스트

  • RAID-0의 기반 기술인 striping은 처리 속도를 높이기 위한 기술로서 두 개의 디스크 중 하나라도 오류가 발생하면 데이터가 손실된다.
  • 또한 RAID-1의 기반 기술인 mirroring두 개의 디스크에 동일한 데이터를 모두 저장하는 방식으로 하나의 디스크 오류를 허용한다.
  • RAID-5 는 하나의 디스크를 패리티로 구성해서 하나의 디스크 오류를 허용
  • RAID-6 는 2차 패리티로 구성해서 두 개의 디스크 오류를 허용한다.
  • 실습

RAID 오류 디스크 교체

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
profile
Curious for Everything

0개의 댓글

관련 채용 정보