Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 IT일지

디스크와 파일 시스템 본문

정보보안

디스크와 파일 시스템

세레프 2023. 6. 22. 21:10

리눅스 파일 시스템

 파일시스템이란 OS가 파일을 활용하기 좋은 형태로 변경해 주는 시스템으로, 디스크에 저장되는 파일의 관리 방법을 결정한다. 이때, OS마다 사용하는 파일 시스템이 다른데, 윈도우에서는 FAT32, FAT64, NTFS, REFS를 사용하며, 리눅스에서는 EXT시리즈와 XFS를 사용한다. 그래서 서로다른 OS들이 파일을 공유할 때에는 파일 컴버터가 필요하다.

 

  • EXT2
    • 단일 최대 저장 크기 : 2GB
    • FSCK를 사용한 파일 시스템 오류 검사
    • 파일의 손상이 일어날 경우 복구 불가
  • EXT3
    • EXT2 버전에 저널링 기능 추가
    • 파일 시스템 변경 시 저널에 먼저 수정 내용을 기록
  • EXT4
    • EXT3 버전에서 속도 기능과 저널링 기능 강화
    • 단일 최대 저장 크기 : 16TB
    • 최대 볼륨 사이즈 : 1EB
  • XFS
    • 현제 Centos 7에서 기본적으로 사용하는 파일 시스템
    • 단일 최대 저장 크기 : 8TB
    • 최대 볼륨 사이즈 : 16EB
    • 2TB이하에서는 비효율적이며, 주로 대용량에서 사용

 

디스크 

 

디스크, 파티션 관리

서버는 전부 파일로 이루어져 있으며, 무수한 프로세스를 통해 운영이 된다. 그리고 파일과 프로세스는 디스크에 저장되어 관리된다. 하지만 서버를 운영하기에 사용되는 디스크(파티션)의 용

my-it-diary.tistory.com

 디스크는 컴퓨터에서 주 기억장치에 저장하지 못하는 데이터를 저장할 때 사용하는 보조기억장치로, 자기장을 가진 플래터를 여러 개 중첩시켜서 쌓아 만든 장치이다. 이때, 헤더를 통해 플래터의 자기장을 읽어 디스크에 저장되어 있는 데이터를 호출한다. 

  • 디스크 개념
    1. 헤더 : 디스크를 읽고 쓰기 위한 장치
    2. 플래터 : 데이터가 저장되는 자기 디스크
    3. 섹터 : 하드디스크의 가장 작은 단위 (512byte)
    4. 트랙 : 섹터로 이루어진 링형 집합체
    5. 실린더 : 각 플래터에서 같은 위치에 있는 트랙의 집합
    6. 클러스터 : 연속적인 섹터들의 집합 (여러 섹터를 하나의 공간으로 인식하기 위함)
    7. 블럭 : 데이터를 읽기위한 가장 작은 단위

 이때, 파티션, 하드디스크에서 첫번째의 섹터를 부트섹터라고 하며, 부트섹터 중에서도 첫번째의 부트섹터를 MBR이라고 한다. 이를 MBR 파티션 형식이라고 하며, 해당 파티션의 디스크 구조는 다음과 같다. 

  •  부트섹터는 각 물리 파티션마다 512byte로 존재하며, 부트섹터를 통해 컴퓨터의 부팅이 결정된다.
  • 하나의 디스크에는 최대 4개의 primary 파티션이 존재
  • 만약 4개 이상의 파티션이 필요할 경우 하나의 primary 파티션은 extend 파티션으로 변경해서 논리 파티션을 생성한다. 이때, extend 파티션은 1개만 생성가능하다.
윈도우와 리눅스의 차이
  윈도우 리눅스
하드 이름 disk /dev/sda, /dev/sdb, /dev/sdc ...
파티션명 C:, D: /dev/sda1, /dev/sda2, /dev/sda3 ...
파티션도구 disk part, patition magic fdisk, parted (2TB이상 하드), gdisk 
포멧 windows탐색기 mkfs
FileSystem FAT시리즈(FAT, FAT 32), NTFS, REFS EXT시리즈(ext2, ext3, ext4), xfs

 

디스크 연결방식

  • IDE : 핀 방식으로 연결되는 디스크
    • 병렬 전송 방식을 사용
    • CPU에서 직접 디스크를 관리하기에, 최대 4개까지만 사용 가능
    • CPU가 인식을 해야 하기에 실행중에는 디스크 연결 불가
    • 연결이 견고, 값이 쌈
    • 규모가 큰 장비에서 사용, 크기가 큼
  • SATA : IDE에서 발전시킨 칩 방식으로 연결되는 디스크
    • 직렬 전송 방식을 사용
    • 컴퓨터가 실행중에서도 디스크 연결 가능
  • SCSI : 핀 방식으로 연결되는 디스크
    • 초반에는 병령 전송방식을 사용하다 현재는 직렬 전송 방식을 사용
    • scsi 칩에서 관리하기에, 사용할 수 있는 최대 갯수가 없음
    • 컴퓨터가 실행중에서도 디스크 연결 가능
    • 소형기기에서 주로 사용
  • SAS : SCSI에서 발전시킨 칩 방식으로 연결되는 디스크
    • 직렬 전송 방식을 사용
    • 서버에서 사용

 

디스크 활용

  • 하드디스크 추가 및 인식
    • echo "- - -" > /sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host0/scan : 재부팅 없이 scsi디스크 인식시키기
    • fdisk -l : 인식되는 하드디스크와 설정된 파티션 확인
      • fdisk -l [장치 파일 경로] : 해당 장치에 설정되어 있는 파티션 확인

 

  • 파티션 생성 (디스크를 분할하는 작업)
    • fdisk [장치 파일 경로] : 해당 장치에 파티션을 설정하기위한 설정모드 변환
      • 파티션 생성시 설정 목록
        1. Partition type:  파티션 생성 타입 설정 (p : primary , e : extended)
        2. Partition number : 파티션 넘버 설정
        3. First sector : 파티션의 첫번째 섹터 설정
        4. Last sector : 파티션의 마지막 섹터 설정 (+[용량 크기] [K,M,G] 로 설정 가능)
      • 이때, 물리or 확장영역의 파티션의 번호는 1~4이며, 5부터 논리영역의 파티션 번호이다.  
fdisk 내부 명령어 의미
n 파티션 생성
d 파티션 삭제
p 파티션 상태 확인
m 메뉴얼
q 파티션 저장하지 않고 종료
w 파티션 저장 후 종료
t 파티션 속성변경

 

  • 포멧 (파일시스템을 파티션에 추가하는 작업 )
    • mkfs -t [파일시스템 명] [파티션 경로] : 해당 파티션은 파일시스템으로 포멧
      • mkfs [파티션 경로] : ext2로 포멧
      • mkfs -j [파티션 경로] : ext로 포멧
    • mkfs.[파일 시스템] [파티션 경로] : 해당 파티션은 파일시스템으로 포멧
      • mkfs.[파일 시스템] -f [파티션 경로] : ext → xfs로 변경할 때 사용
    • blkid : 포멧이 완료된 파티션(블록) 확인하며, 고유값(UUID)을 확인하는 명령어
리눅스 파일시스템
ext2 확장된 파일 시스템(속도 상승)
ext3  저널링을 통한 안정성 상승
ext4 속도 + 안정성 대폭 향상
xfs 대용량 파일 시스템 → 현재 centos7 기본 파일 시스템

 

  • 마운트 (기존의 디렉토리에 포멧이 완료된 파티션/디스크 장치를 연결하는 작업)
    • mount [파티션 경로] [디렉토리 경로] : 파티션을 디렉토리에 마운트
      • mount -t [파일 시스템] [파티션 경로] [디렉토리 경로] : 해당 파일 시스템을 가진 파티션을 디렉토리에 마운트
      • umount [파티션 경로] : 파티션의 마운트 해제 
      • umount [디렉토리 경로] : 해당 디렉토리에 되어 있는 마운트 해제
      • eject [디렉토리 경로] : CD-ROM, DVD등 이동식 보조기억장치의 마운트 해제
      • eject [파티션 경로] : CD-ROM, DVD등 이동식 보조기억장치의 마운트 해제
    • mount : 파티션의 마운트 여부 확인
      • cat /etc/mtab : 파티션의 마운트 여부 확인
      • cat /proc/mounts : 파티션의 마운트 여부 확인
    • df : 디스크 여유 공간 확인
      • df -h : 디스크 여유공간을 단위로 확인
      • df -Th :  디스크 여유공간을 파일 시스템 타입과 함께 확인
    • du : 디스크 사용량 확인

 이때, 쉘이 마운트 해제할 해당 디렉토리에 있을 경우 쉘이 동작하고 있기에 동작중으로 판단되어 해제 불가능하다. 그래서 마운트 해제하기 위해서는 해제할 디렉토리에 나와서 진행해야 한다.

  • fuser [디렉토리] :  해당 디렉토리에서 실행중인 프로세스 확인

 

자동 마운트

 mount 명령어를 통해 파티션을 해당 디렉토리에 연결하게 되면, 해당 디렉토리를 통해 파티션에 파일, 디렉토리를 생성 할 수 있다. 이때 해당 디렉토리에 파일, 디렉토리가 존재한 상태에서 마운트하게 되면 기존의 파일, 디렉토리는 숨겨지게 되며, 마운트를 해제하게 되면 기존의 파일, 디렉토리가 나타나게 된다. 

 

 mount명령어를 통한 마운트는 휘발성을 갖는다. 즉, mount명령어를 사용해서 장치를 마운트 하는 경우, 컴퓨터가 부팅을 하면 해당 마운트가 자동적으로 해제가 된다. 그래서 일시적으로 연결하는 것이 아니면, 컴퓨터가 부팅이 되더라도 마운트가 해제되지 않는 자동마운트를 사용한다. 

  • 자동 마운트 관련 파일
    • /etc/fstab : 장비의 파일시스템과 마운트 장소를 저장하는 파일로, 장비를 자동 마운트 시키는 경우에 해당 파일에 내용을 추가한다.
      • [디바이스] [마운트포인트] [파일 시스템 ] [mount옵션] [dump기록] [파일 점검 여부]
        1. 디바이스 : 디바이스 장비파일을 및 UUID
          • 부팅순서가 바뀌거나 하드디스크를 추가할때 우선순위에 따라 장비 이름이 바뀔 수가 있다. 그래서 장비파일이 아닌 UUID를 사용
        2. 마운트 포인트 : 해당 디바이스를 마운트할 디렉토리 절대 경로
        3. 파일 시스템 : 해당 디바이스를 포멧한 파일시스템 종류
        4. 마운트 옵션 : 마운트 하는 경우, 상태 옵션 설정 (Read-Only / Read Write...)
        5. dump : 백업 파일 생성 여부 (0 : 비활성화, 1:활성화)
        6. fsck : 파일 점검 여부 ( 0 : 비활성화 ,1 : 최우선, 2 : 일반)
    • mount -a : fstab파일에 기술 되어 있는 장치들을 마운트 시키는 명령어

'정보보안' 카테고리의 다른 글

압축과 패키지  (0) 2023.06.26
프로세스  (0) 2023.06.23
NCS)관리적 보안 구축  (0) 2023.06.21
링크와 쉘  (0) 2023.06.20
특수 권한과 권한 제어  (0) 2023.06.19
Comments