파일 시스템과 스왑영역 coearth, george.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

1 Lotte EDI 환경 설정 매뉴얼 LLTTTTEE Always with You OO.
운영체제 파일관리 이승언. 목차 1. 파일 시스템 1) 파일 시스템의 정의와 기능 2) 파일 읽기 / 쓰기 3) 파일 관리 2. 윈도우의 파일 시스템 1) 윈도우 파일 시스템 종류 2) 윈도우 파일 시스템 비교 3)FAT ①포맷된 디스크의 구조 ②포맷된.
PE 로 Windows 7/8 운영체제 만들기 4 조 : 박 성 진. 1.PE로 부팅 합니다. 1) Windows7 PE CD 를 삽입 합니다. 2) BISO 설정에서 부팅순서를 CD-ROM 또는 USB 를 1 순위로 올려준다. 3) 부팅이 될 때 까지 기 달려요.
Managing Filesystems, Swap Space, and Devices
Windows Function Windows XP Windows 7 Windows 8 FREE 조장 : 김동환 조원 : 전태우
컴퓨터와 인터넷.
파일시스템, 스왑 영역, 장치 파일 관리.
Linux Seminar Cahpter 10. Linux File System
컴퓨터 운영체제의 역사 손용범.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
뇌를 자극하는 Windows Server 2012 R2
소리가 작으면 이어폰 사용 권장!.
<<< 시스템등록정보 “하드웨어-장치관리자” 설정 >>>
MCMS3000 네트워크 설정방법 [반도 HFCNMS 시스템 Set-up] 반도전자통신
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
코크파트너 설치 가이드 Window 7.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
컴퓨터 프로그래밍 기초 [Final] 기말고사
Linux/UNIX Programming
뇌를 자극하는 Windows Server 2012 R2
Windows Server 장. 사고를 대비한 데이터 백업.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
리눅스 라우터 (iii_lrp) 컴퓨터응용과학부 담당교수님 : 이상훈 마 의 호.
강 명 수 LINUX 설치 강 명 수
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
8장. 원격지 시스템 관리하기.
Root Filesystem Porting
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Root Filesystem Porting
강 명 수 시스템 디스크 관리 강 명 수
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Linux Master 김희승 임승한 OneScore 임승한.
3장. CentOS 리눅스 설치.
플랫폼의 개념 클럭, 버스, 대역폭의 의미 64비트 PC
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
뇌를 자극하는 Windows Server 2012 R2
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
ARM Development Suite v1.2
빌드 성공.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Teaming pms.
Kernel, Ramdisk, JFFS2 Porting
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
STS 에서 웹 서버 설치 방법.
뇌를 자극하는 Solaris bible.
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
 파일 아카이브와 압축 명령 익히기.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
12 그리드 시스템.
함수, 모듈.
발표자 : 이지연 Programming Systems Lab.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
CHAP 15. 데이터 스토리지.
Docker Study 6~7.
7 생성자 함수.
CCISS 어레이 형식 centos7 설치방법
Chapter 11. 문서 인쇄 및 파일 형식.
Presentation transcript:

파일 시스템과 스왑영역 coearth, george

파일 시스템이란? 파일 시스템은 데이터를 어떻게 저장되고 읽는지 관리한다 파일 시스템이 없으면 저장 장소에 정보가 저장되어 있어도 각자 어디가 시작이고 끝인지 알 수 없다. OS 별로 지원하는 파일 시스템의 종류가 다르다. 플로피디스크, CD-ROM, 하드 드라이브와 같이 random access를 지원하는 저장 매체에 파일 시스템이 필요하다

파일 시스템의 동작원리 블록: - 파일 시스템에서 데이터를 저장하는 최소 단위 섹터: - 파일시스템에 따라 블록 크기를 조절할 수 있음 - 일반적으로 데이터의 크기가 블록의 정수배가 아니므로 공간이 낭비되는 경우가 생길 수 있음 섹터: - 하드디스크에서 데이터를 저장하는 최소 단위 - 일반적으로 512 byte이나 최근에 나온 하드디스크의 섹터 크기는 4 kilobyte (4096 byte, advanced format라고도 불림)임.

하드디스크 섹터 크기 확인 /dev/sda 하드디스크의 섹터 크기를 확인하려면 cat /sys/class/block/sda/queue/physical_block_size cat /sys/class/block/sda/queue/logical_block_size 실습 서버에서는 sda 대신 xvda1 쓰면 됨

파일 시스템의 동작원리 파일 크기와 디스크 할당 크기가 다른 이유

파일 시스템의 동작 원리 파일 시스템에는 크게 inode block과 data block이 있다. Inode(Index node의 약자)는 파일시스템에 있는 디렉토리나 폴더를 나타내기 위한 데이터 구조이다 각각의 inode은 파일의 속성(metadata)과 data block 위치 등을 저장하고 있다. Metadata는 파일시스템마다 다르지만 파일의 주인, 퍼미션, 만든 시간, 접근 시간 등의 내용을 포함함.

파일 시스템의 동작 원리

파일 시스템의 종류 리눅스: Btrfs, ext2, ext3, ext4, resierfs, xfs 윈도우: ntfs, fat16, fat32 맥: hfs+

저널링 파일 시스템 저널링 파일 시스템이란 파일 시스템에 가해진 변경 사항들을 기록해 두는 기술로써 파일 시스템의 복구를 쉽게 만들어줌. 앞에서 설명한 파일 시스템 중 ext2, fat16/32 만 저널링 파일 시스템이 아님 종류, 동작원리는 다양함. 파일 시스템 비교해보고 싶으면 https://en.wikipedia.org/wiki/Comparison_of_file_systems 링크 참고

리눅스에서 주로 쓰이는 파일 시스템 종류 Ext3 Ext2와의 호환성을 최대한 유지하면서 저널링 기능을 추가한 파일시스템 지원하는 저널링의 종류: Journal: 파일과 메타데이터가 저널에 먼저 쓰인 다음에 주 파일시스템에 쓰인다. 가장 신뢰할만한 방식이지만 데이터가 두 번 쓰이기 때문에 속도가 느릴 수 있다. Ordered(기본값): 메타데이터만 저널에 쓰인다. 파일은 쓴 후에 저널에 반영하기 때문에 파일 쓰는 도중에 오류가 나면 확인이 가능함 Writeback: 메타데이만 저널에 쓰인다. 저널에 쓰기 전 또는 후에 파일 데이터가 쓰이기 때문에 신뢰성이 가장 떨어질 수 있음

리눅스에서 주로 쓰이는 파일 시스템 종류 Ext4 많은 배포판의 기본 파일시스템 Extents와 할당 지연와 같은 기능이 추가됨 파일을 파일 시스템에 쓸 때 최대한 할당을 지연하므로 파편화를 줄이고 성능을 향상시킬 수 있음 저널에 체크섬을 추가해 성능과 안정성을 개선했음

Extents란 전통적인 파일시스템의 경우 Inode block에서 data block을 가리키는 포인터의 숫자는 정해져 있다. 그래서 data block의 크기가 커지만 inode block은 indirect block을 만들어서 포인터를 늘리는 방식으로 대응한다. 큰 파일은 block의 개수가 매우 많고 매핑 또한 많아지게 된다. 매핑이 많으면 성능이 떨어진다. 연속적인 다수의 블락인 Extents라고 한다. 데이터가 다음 n블락에 연속적으로 있음을 표시되어있기 때문에 쉽게 많은 data block을 빠르게 읽고 쓸 수 있다.

리눅스에서 주로 쓰이는 파일 시스템 종류 XFS 실리콘 그래픽스에서 만든 고성능 64비트 저널링 파일시스템 디스크를 쓰기보다는 메모리상에 많은 데이터를 캐시해서 전반적으로 좋은 퍼포먼스를 보인다. Allocation groups를 이용해서 병렬적인 입출력 속도가 빠르다

파티션 하드 디스크를 나누어 놓은 구획. 하나의 하드 디스크를 마치 논리적으로 여러 개의 저장소처럼 취급 한 파티션의 파일 시스템에 손상이 가더라도 다른 파티션에 영향이 안 가기 때문에 안정성을 높일 수 있음 (물론 하드디스크가 고장 나면 다른 방도가 없음 ) 필요한 파티션만 포맷할 수 있기 때문에 업글할 때 편리함

파티션 종류 MBR 경우 최대 4개의 파티션만 만들 수 있음 Primary partition과 extended partition이 존재 Extended partition은 여러 개의 논리 파티션을 저장하는 그릇이라고 비유할 수 있음 4개의 파티션을 만들면 주 파티션으로도 충분하지만 4개 이상의 파티션을 만들려면 하나의 확장파티션을 만들고 그 안에 논리 파티션을 여러 개 만들 수 있다. MBR의 제약으로 2TB이상의 파티션은 만들지 못함

MBR and GPT MBR GPT 1980년대에 나와서 호환성이 좋음 파티션의 개수 제한이 4개임 파티션 크기 제한이 2TB 비교적 최근에 나온 파티션 테이블 레이아웃 파티션 개수 제한이 없고 모든 파티션이 주 파티션 2TB이상의 파티션을 지원 일부 구형 컴퓨터/운영체제에서는 부팅 불가능

리눅스에서 파일 시스템 관리 하드디스크를 새로 구입해서 설치하거나 운영체제를 다시 설치할 때 필요한 절차들 이미 되어 있는 단계는 건너뛰어도 된다 파티션 설정(fdisk, parted) 파일 시스템 만들기(mkfs) 장치 마운트하기(mount) 파일 시스템 점검하기(fsck)

리눅스 파티셔닝 툴 대표적으로 fdisk, parted가 있음. 리눅스 시스템의 장치 파일들은 /dev에서 볼 수 있음 IDE 형식의 하드디스크는 /dev/hda, /dev/hdb, /dev/hdc 와 같이 지정됨 Sata, schi 형식의 하드디스크는 /dev/sda, /dev/sdb, /dev/sdc 와 같이 지정됨

fdisk 사용법 fdisk [디스크 장치] 대화형으로 이루어지고 w명령어를 입력하기 전에 디스크에 변경사항이 저장되지 않으므로 쉽게 할 수 있다. 대표적인 명령들: p 파티션 테이블 출력 n 새로운 파티션 만들기 d 파티션 지우기 w 파티션 테이블을 저장하고 종료 q 파티션 테이블을 저장하지 않고 종료

fdisk 사용법 옵션들

fdisk 사용법 명령 목록

파일 시스템 만들기(mkfs) 각각의 파일 시스템들은 자신과 관련된 고유의 mkfs명칭을 가지고 있다. Ext3 파일시스템을 만드는 명령어는 mkfs.ext3 이고 mkfs 자체는 이런 명령어를 각각 실행시켜주는 녀석에 불과함

파일 시스템 만들기(mkfs) 사용법: mkfs –t [파일 시스템 타입][파티션 장치] 만약 파일 시스템 타입을 지정을 안해주면 기본값은 ext2임 mkfs –c –t [파일 시스템 타입][파티션 장치] -c 옵션을 더하면 파일시스템을 만들기 전에 배드섹터 검사를 한다. 윈도우에서 빠른 포맷이 아닌 일반 포맷과 같다고 보면 된다.

파일 시스템 마운트하기 유닉스 시스템에서 모든 접근 가능한 파일은 하나의 트리로 정리가 되어있다. “/”가 루트가 되고 다른 파일들은 루트의 자식이 된다. 마운트란 파일시스템을 이 커다란 파일 트리에 장착을 하는 작업이다. 즉 마운트란 파일 시스템을 사용하기 위해 파일 시스템을 디렉터리와 연결시키는 과정을 의미한다.

수동으로 마운트하기 mount 현재 마운트돼있는 정보를 출력

mount –t [파일 시스템 타입] [디바이스][디렉터리] 디렉터리는 마운트 하는 파티션이 어떤 디렉터리에 대응할지 나타냄 디바이스는 /dev/sda1 와 같은 파티션을 의미함 mount –a /etc/fstab 파일에 “auto” 옵션을 가지고 있는 모든 파일 시스템들을 마운트. umount [디렉터리] 또는 [디바이스] 마운트되어있는 파일시스템을 언마운트시킴.

자동으로 파일 시스템 마운트하기 /etc/fstab 설정 파일은 하드 디스크 파티션과 다른 블락 디바이스, 원격 파일 시스템을 마운트 설정 파일의 각 줄은 다음과 같은 필드가 있다 <file system> <dir> <type> <options> <dump> <pass>

/etc/fstab 예시

<file system> <dir> <type> <dump> <pass> 마운트하고 싶은 장치 E.g) /dev/sda1 <dir> 마운트 포인트이며 해당 파티션이 대응하는 디렉터리 <type> 파일 시스템 타입을 의미함 E.g) ext4, xfs, nfs 등 <dump> 덤프 유틸리티가 백업을 할지 결정하는데 필요한 값. 대부분의 경우 필요없으므로 0으로 하면 됨 <pass> Fsck 가 파일시스템을 체크할지 결정하는데 필요한 값 0, 1, 2값이 들어갈 수 있고 루트 파일 시스템은 1이다 Swap파티션을 fsck가 필요 없으므로 0 을 넣어야함 나머지 일반 파티션의 경우 2를 넣으면 됨

파일 시스템 점검 및 복구(fsck) fsck은 파일 시스템이 정상 상태인지 확인하고 수리하는데 사용되는 도구이다 mkfs와 마찬가지로 파일 시스템마다 개별적인 fsck가 있고 fsck은 해당하는 복구 프로그램을 불러주는 역할에 불구 fsck를 쓰기 전에는 파일 시스템을 언마운트한 이후에 사용해야함

Fsck 사용하기

스왑 공간 스왑 공간이란? 보조 저장 장치를 이용해 RAM의 부족을 해결하는 용도로 쓰임 윈도우에서는 가상 메모리 또는 페이징 파일이라고도 불림 메모리 사용 상황에 맞춰 RAM과 스왑 공간 사이에서 데이터를 교환하는 방식으로 작동함 예전에는 RAM 용량의 두 배를 스왑 공간으로 할당했음

스왑 공간 할당 방법 파일 시스템 중 하나에 스왑 파일을 만드는 방법 시스템이 켜져 있는 도중에 메모리가 부족하면 스왑 파일을 만들고 스왑 공간을 추가할 수 있는 장점이 있음 스왑 전용 파티션을 만드는 방법 디스크상의 블록이 연속적이기 때문에 좀 더 좋은 성능을 기대할 수 있음

스왑 공간 관리 free 시스템 RAM용량과 SWAP용량, 사용량 등을 볼 수 있음

스왑 파티션 만들기 하드디스크의 두 번째 파티션을 스왑 파티션으로 쓴다고 하면: parted /dev/hda mkpart [파티션 종류] linux-swap [시작] [끝] 파티션 종류: primary, extended, logical 시작, 끝: 숫자 + “MiB”, “KiB”, “Gib”, “s”(섹터)

mkswap /dev/hda2 swapon /dev/hda2 부팅시간에 스왑이 활성화되도록 하려면: 파티션을 포맷하고 스왑 공간으로 만들어줌 -c 옵션을 붙이면 배드섹터 확인함 swapon /dev/hda2 바로 스왑 파티션을 활성화시킬 수 있다 부팅시간에 스왑이 활성화되도록 하려면: /etc/fstab 파일 수정 /dev/hda2 swap swap defaults 0 0 추가 만약 ssd에 스왑공간을 만들었으면 defaults, discard 옵션도 추가하기

스왑 파일 만들기 dd if=/dev/zero of=[스왑 파일 만들 위치] bs=1024 count=[스왑 파일 크기(kilobytes)] 만약 512MB의 스왑 공간을 만들려면 1024 * 512 = 524288 의 값을 넣으면 됨 mkswap [스왑 파일 위치] swapon [스왑 파일 위치] 부팅시 적용시키려면 /etc/fstab 에 다음과 같이 적으면 된다 [스왑 파일 위치] swap swap defaults 0 0

DD란? 파일을 복사하거나 변환하는데 사용함 디바이스(/dev/sda)나 특별한 디바이스 파일(/dev/zero)도 사용이 가능 하드디스크 내용을 통째로 백업하는데 사용할 수 있음. (개별 파티션도 가능) E.g) sda2파티션을 sdb2파티션에 복사하고 싶으면 dd if=/dev/sda2 of=/dev/sdb2 bs=4096 conv=noerror DD 중요 옵션: bs=[크기]: 한번에 [크기]만큼 쓰거나 읽음 count=[N]: [N]번에 block을 복사함 if=[파일]: [파일]로부터 읽어옴(입력) of=[파일]: [파일]에 씀(출력) conv=noerror: 파일을 복사시 배드섹터가 있어도 계속 실행

스왑 공간 끄기 swapoff [파티션 또는 파일 이름] 만약 /etc/fstab 에도 적었으면 지워야함

직접 실습해봅시다 256MB에 해당하는 빈 스왑 파일 dd로 만들기 해당 파일이 루트계정만 읽고 쓸 수 있도록 권한 바꾸기(600) mkswap을 이용해서 스왑공간 만들기 swapon을 이용해서 스왑공간 활성화 free 또는 /proc/swaps을 확인해서 스왑이 적용됐는지 확인하기 swapon –s 을 통해서도 확인해보기

출처 Andromeda-20140729-0.pdf