스왑영역확인(초기상태) - free / swapon

 

스왑 파티션 생성

스왑파티션은 스왑영역을 생성하기위한 방법중 하나입니다. (다른 하나는 스왑파일생성) 스왑파티션을 생성하기 위해선 먼저 디스크를 파티셔닝해야 합니다.

fdisk 명령을 사용하여 스왑영역으로 사용하기 위한 /dev/sdb5 파티션 장치를 생성하고 생성한 파티션을 스왑영역으로 사용하기 위하여 파티션 타입을 스왑 장치용 파티션으로 바꾸어야합니다.

 

fdisk 명령의 프롬프트에서 't' 명령을 사용하여 파티션 타입을 변경할 수 있습니다.

 

't'명령후 Linux 파티션 타입 근처에 82번 Linux swap /Solaris 파티션을 사용합니다.

 

파티션 타입 변경 후 'w' 명령으로 파티션설정을 저장하고, 쉘에서 partprobe명령을 사용하여 변경된 파티션 테이블을 운영체제에게 알립니다.

[root@localhost ~]# partprobe /dev/sdb5

 

파티션 타입을 스왑으로 지정하였지만 아직 생성된 파티션은 스왑영역으로  지정되지 않았습니다.

 

파일 입출력 용도의 파일시스템을 생성할 때 파티셔닝 한 후 파일 시스템을 생성했던것 처럼, 스왑영역을 생성할 때에도 파티셔닝 한 후에 파티션에 스왑영역을 생성해야 합니다.

이때 사용하는 명령이 mkswap입니다.

 

[root@localhost ~]# file -s /dev/sdb5
/dev/sdb5: Linux/i386 swap file (new style), version 1 (4K pages), size 262143 pages, no label, UUID=458dae25-89d5-42df-8fc1-3ba645007e3d
[root@localhost ~]# mkswap /dev/sdb5

 

file 명령으로 스왑 영역을 생성하기 전 상태의 파티션 장치를 확인합니다.

mkswap명령을 사용하여 파티션 장치를 지정하면 스왑영역이 생성되고 스왑영역이 생선된 파티션에 대한 정보가 출력됩니다. 또한 스왑영역에 대한 UUID 값도 확인할 수 있습니다.

 

 

스왑파일 생성

 

스왑파일은 파일 시스템 아래에 파일을 생성하여 그 파일을 스왑영역으로 사용합니다. 즉, 파티션장치를 사용하지 않고 디스크 파티셔닝을 위한 파티션을 확보할 필요가 없습니다.

 

1. df -h 를 이용하여 보기편하게 파일시스템 사용량을 출력하여 여유고간이 있는지 확인합니다

 

2. 이후 스왑파일을 생성하기 위한 디렉토리 생성후 파일을 생성합니다

 

('dd'사용, 'of'에는 생성될 파일 , 'if'에는 복사할 파일 , 'bs'에는 복사할때 사용할 블록 크기를 byte단위로, 'count'는 복사할 횟수를 지정합니다.

 

'if'를 다음과같이 /dev/zero 파일을 지정하여 복사할 경우 of에 지정된 파일의 데이터가 모두 0으로 채워집니다.

 

즉 다음 명령어의 의미는 0으로 채워진 데이터를 512byte씩, 1048576번 /swapdir/swapfile 파일에 복사하게됩니다.)

 

 

[root@localhost ~]# dd if=/dev/zero of=/swapdir/swapfile bs=512 count=1048576

3. 스왑파티션 생성때와 동일하게 mkswap명령을 사용하여 스왑파일을 생성합니다.

4. file -s 를 통해 확인

 

 

스왑 영역 활성화

 

스왑 영역이 생성된 뒤에는 시스템에서 스왑영역이 사용될수 있도록 활성화 해야합니다.

 

swapon [option] {partition | file-name}

 

옵션

-a : /etc/fstab 파일을 참고하여 스왑영역을 활성화 합니다

-p : 스왑영역을 활성화 할때 우선순위를 지정합니다.

-s : 활성화된 스왑영역의 정보를 출력합니다

 

스왑 영역 활성화 해제

 

swapoff [option] {partition | file-name | UUID }

 

옵션

 

-a : 파일시스템 테이블 파일, 또는 /proc/swaps 파일을 참고하여 현재 활성화된 스왑영역중 사용중이지 않은 스왑영역전체를 해제

출처 : https://ko.wikipedia.org/wiki/%ED%95%98%EB%93%9C_%EB%94%94%EC%8A%A4%ED%81%AC_%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C#/media/%ED%8C%8C%EC%9D%BC:Hard_drive-en.svg

 

 플래터(Platter) : 실제 데이터가 저장되는 위치, 데이터는 자기장을 이용하여 기록됩니다. 양면에 기록 가능

 

스핀들(Spindle) : 플래터를 회전시키는 역할 (RPM: 모터 회전 속도 )

 

헤드 (Head): 플래터에 데이터를 기록하는 기능 담당. 디스크와 매우 가깝게 붙어있기 때문에 디스크에 충격이 가해질 경우 헤드가 플래터를 손상시킬수 있습니다

 

액추에이터(Actuator) : 엑추에이터는 디스크 제어 컨트롤러에 의해 디스크 플래터의 원하는 위치에 있는 데이터를 읽어오기 위하여 암을 이동시키는 역할을 담당합니다.

 

액추에이터 암(Actuator Arm) : 엑추에이터에 의하여 움직여지고, 각 암마다 한개씩의 헤드가 붙어있습니다. 액세스 암이라고도 부릅니다.

 

커넥터 (Connector): 디스크의 연결 인터페이스 종류에 맞는 케이블 연결을 담당합니다. 일반적으로 IDE,S-ATA(Serial ATA) , SCSI , SA-SCSI등을 사용합니다.

 

점퍼 블록(Jumper Block) : IDE 인터페이스를 사용하는 하드디스크의 경우 master/slave를 결정하기 위한 점퍼를 설정해야 합니다. 다른 인터페이스의 경우에는 점퍼가 필요하지 않습니다.

 

전원커넥터 (power connector) : 디스크 구동에 필요하 전원케이블을 연결합니다.

 

물리적 디스크의 동작 방식

 

디스크의 저장 영역은 하나 또는 그 이상의 플래터로 구성됩니다. -> 플래터 회전 -> 액세스 암은 단일 단위에 읽기 및 쓰기 헤더를 이용하여 신속하게 수행 ->  읽기/쓰기 헤더는 플래터 양옆의 마그네틱 표면에 데이터에 대한 읽기,쓰기를 수행합니다.

 

디스크 플래터(Disk Platter) 의 논리적 구성 요소

 

 

섹터(Sector) : 플래터(platter) 의 가장 작은 단위입니다. 1개 섹터의 크기는 512byte입니다. 섹터는 디스크 블록으로도 불립니다.

 

트랙 (Track) : 섹터가 모여 하나의 원을 구성합니다. 트랙은 많은 수의 섹터를 가지고있으며 플래터 내의 여러개 트랙이 존재합니다.

 

실린더 (Cylinder) : 여러 동심 트랙에 대한 스택구조입니다.

 

 

 

크기별 정리 : 디스크 > 파티션 > 실린더 > 트랙 > 섹터

 

 

 

 

리눅스 주요 디렉터리 (/ 아래 있는 디렉터리)

  • 실제 디스크에 존재하는 디렉터리

/etc : 여러 가지 설정 (리눅스 자체 설정, 다양한 응용 프로그램)

 

/var : 변경되는 주요 데이터들이 저장되는 위치 (로그)

 

/bin : 실행 파일 (/usr/bin의 심볼릭 링크)

 

/home : 사용자의 기본 홈 디렉터리의 기본 위치 (root 사용자는 /root)

 

/sbin : /usr/sbin의 심볼릭 링크, 시스템 관리용 명령어가 위치

 

/tmp : 공용 공간, 누구나 사용 가능, Sticky Bit가 설정되어 있음, 주기적으로 정리될 수 있음

 

/boot : 부팅 관련 데이터, 부트로더(Boot Loader)

 

/usr : 사용자가 설치하는 프로그램 등이 위치 (Unix System Resource)

 

  • 메모리 기반의 임시 파일 시스템

/dev : 장치 파일이 존재하는 위치

 

/proc : 프로세스 및 시스템의 일반적인 정보 등이 위치

 

/run : 런타임에서 임시로 생성되어 유지되는 공간 (저널 journal)

파일 시스템 마운트

파일시스템을 생성한 후에는 파일 시스템에 접근할 수 있는 경로를 생성해야 합니다.  이 과정을 mount라고 합니다.

 

 

mount 명령어

mount [option] {partition | UUID} mount-point

 

옵션

-t : 마운트할 파일 시스템의 유형을 지정합니다. (ext2, ext3, ext4, xfs,... )

-o : 파일시스템 마운트 시, 세부 옵션을 지정합니다.

 

-o 옵션중 default 옵션은 ' rw , suid , dev, exec , auto , nouser , async ' 옵션 집합입니다.

 

rw : 파일시스템을 읽기/쓰기 가능 상태로 마운트

suid : 파일 시스템 내 파일의 SetUID설정을 사용할 수 있습니다.

dev : 파일시스템 내의 블록 장치/캐릭터 장치를 해석합니다

exec : 파일시스템 내 바이너리 파일을 실행할 수 있습니다

auto : 'mount' 명령의 '-a' 옵션으로 마운트 합니다

nouser : 관리자가 아닌 일반 사용자에 의한 마운트를 금지합니다

async : 파일시스템의 입출력을 비동기로 처리합니다 (async)

 

이러한 각 옵션에 'no'를 붙여 반대 의미로 사용할 수 있습니다. ( nosuid, nodev, noexec, noauto)

이외 옵션

ro : 파일 시스템을 읽기 전용 모드로 마운트 합니다

atime : 파일 inode의 접근 시간(access Time)의 갱신을 허용

remount : 파일 시스템을 다시 마운트 합니다.

sync : 파일 시스템 입출력을 동기방식으로 처리합니다.

 

 

 

 

mount 시킬 디렉터리 추가

 

[root@localhost ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@localhost ~]# mkdir /mnt/ext4test
[root@localhost ~]# mkdir /mnt/xfstest

 

mount 명령어

[root@localhost ~]# mount /dev/sdb1 /mnt/ext4test
[root@localhost ~]# ls -l /mnt/ext4test
total 12
drwx------. 2 root root 12288 May 12 14:10 lost+found

확인

[root@localhost ~]# mount | tail -1
/dev/sdb1 on /mnt/ext4test type ext4 (rw,relatime,seclabel,data=ordered)

 

 

시스템은 전원이 종료되면 마운트 된 파일 시스템을 전부 해제합니다 . -> 이를 주기적으로 다시 마운트 하기위해  파일 시스템 테이블에 등록하여 마운트를 실행합니다.

 

파일시스템 테이블의 경로는 /etc/fstab입니다.

 

[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Apr 30 14:19:01 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=fdf3968e-8fa0-470a-a887-b1af4192c900 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

순서대로 1번 필드 (UUID)는 파일 시스템의 파티션 장치명을 나타냅니다. 이 필드에는 파일시스템의 파티션 장치명 또는 파일시스템의  UUID 값이 지정됩니다.

 

2번 필드는 마운트 포인트입니다. 이 필드에는 파일 시스템이 마운트 될 마운트 포인트를 지정합니다. 마운트 포인트가 필요할 경우에는 경로를 지정하고, 마운트 포인트가 필요하지 않은 경우(swap) swap 또는 none으로 지정합니다.

 

3번 필드는 파일 시스템 유형

 

4번 필드는 마운트 옵션입니다.

 

5번 필드는 덤프(dump) 명령어 사용 시 백업 설정입니다. 덤프 하여야 할 파일 시스템의 경우 '1'을 지정하고 덤프가 필요 없을 경우 '0'을 지정합니다

 

6번 필드는 시스템 부팅 시 파일 시스템 체크 명령인 fsck에 의한 체크여부 설정입니다. 파일시스템 체크 우선순위로 '1'이후의 숫자가 지정됩니다.  '1'은 루트 파일(/) 사용을 권장하며 일반 파일 시스템은 '2' 이후의 값을 지정할 수 있습니다.

 

 

 

 

 

 

마운트 한 파일 시스템은 마운트를 해제할 수 있습니다. 이과정을 Unmount라고 부릅니다.

 

마운트 해제

umount [option] {partition | mount-point | UUID }

 

특정 위치의 파일 시스템을 언마운트하기 위하여 파일 시스템의 파티션 장치명, 마운트 포인트, UUID 중 하나를 반드시 입력해야 합니다.

+ Recent posts