------------------------------------------------------------------------------
Module 9 File System Concept
-----------------------------------------------------------------------------
File System Type
- HFS : High Performance File System
- JFS : Journaled File System
- NFS : Network File System
- CDFS : CD-ROM File System
HFS
- HP-UX에서 사용하는 보통의 UNIX File System(UFS)
- 현재는 HP-UX의 커널 이미지를 저장하는 파일시스템으로만 사용
JFS
- Veritas File System (VxFS)로 알려져 있는 파일시스템의 특징 중 신속한 파일시스템의 복구 및
온라인 백업, 온라인 리사이징, 온라인 재구성 정도 등의 제한된 기능만을 가지고 있음.
- 부트할 수 있는 파일시스템에는 사용할 수 없음.
- online defragmentation and reorganization
- online expantion and contraction of file system size
- online backup
NFS
- 클라이언트/ 서버 환경에서 다수의 시스템이 동일한 파일들을 공유할 수 있도록 하는 파일 시스템
CDFS
- CD-ROM에 담겨있는 데이터를 access하기 위한 파일시스템
What's in File System ?
- User Data
- Meta Data(Superblock, i-nodes, Directories)
* Superblock
- 파일시스템의 첫머리 부근에 있는 8KB 크기의 디스크 블록
- 파일시스템에 대한 일반적인 정보를 가지는 영역
- 시스템의 타입(type), 크기(size), 상태(status), 그 밖의 다른 파일 시스템의
metadata structure에 대한 포인터 등의 정보를 포함.
- 여러개의 복사본이 있으며, sync 명령이 수행될 때마다 새롭게 갱신
* i-nodes
- 모든 파일의 속성에 대한 정보를 가지는 영역
- 파일의 타입(type), 권한(permission), 소유자(owner), 그룹(group), 크기(size)등의 정보와
파일과 관련된 데이터 블록의 포인터를 가짐.(파일의 이름 정보는 없음)
- 각각의 inode는 파일시스템 내에서 유일한 inode number가 있어 그 값으로 인식
- 'ls -i filename' 명령으로 inode 값을 볼 수 있음.
* Directories
- 파일 이름과 inode number 사이의 mapping 정보를 가짐.
Accessing a File System
---------------------------------------------------------------------------------
module 10 File System Creation
---------------------------------------------------------------------------------
Creating a File System
(1) Create the new File System
# newfs -F vxfs /dev/vg00/rmyfs1
- newfs는 VxFS나 HFS 파일 시스템을 생성할때 사용
- F옵션 다음에는 생성할 파일 시스템 종류를 입력
- 디바이스 명은 character device명을 사용
(2) Create a mount point directory for the file system
# mkdir /myfs1
(3) Mount the new file system
# mount /dev/vg01/myfs1 /myfs1
- 생성된 /dev/vg01/myfs1를 /myfs1이라는 디렉토리에 마운트한다.
- 마운트 시에는 block device명을 사용
(4) Add the file system to the /etc/fstab file
- 부팅시 자동으로 인식하게 하려면 /etc/fstab에 등록해준다.
The New FS Command
# newfs -F vxfs /dev/vg01/rmyfs1
# newfs -F vxfs -o largefiles /dev/vg01/rmyfs1
# newfs -F hfs /dev/vg01/rmyfs2
# newfs -F hfs -o largefiles /dev/vg01/rmyfs2
# newfs -F hfs -b 4096 -f 2048 -m 5 -i 4096 /dev/vg01/rmyfs2
[Vxfs와 HFS에 공통으로 사용되는 옵션]
-F hfs|vxfs : 파일 시스템의 결정
-o largefiles : 2G이상의 파일시스템을 만들시(DB파일같은것...) 128G까지 확장 가능.
-s size :
-v : newfs 커맨드를 입력후 처리하는 과정을 보여준다.
[HFS에만 사용되는 옵션]
-L/-S : S옵션으로 파일이름을 14자까지 제한할 수 있음. 이 옵션이 없으면
기본적으로 256이상 가능
-b block-size : block 사이즈를 바이트 단위로 지정가능. 이 옵션 없으면 디폴트 8KB
-f frag-size : frag 사이즈를 바이트 단위로 지정가능. 이 옵션 없으면 디폴트 1KB
-m min-free : 루트만을 위한 여유공간을 남기기 위한 것. 이 옵션 없으면 디폴트 10%
-i inode-size : inode 사이즈
newfs Option Speific to the Whole-Disk Approach
- LVM식으로 파일 시스템을 생성하지 않고 전체 디스크를 newfs 명령어를 사용하여 파일 시스템 생성
# newfs -F hfs /dev/rdsk/c0t0d0 : creates and HFS on disk c0t0d0
# newfs -F vxfs /dev/rdsk/c0t0d0 : creates and JFS on disk c0t0d0
# newfs -F hfs -R 200 /dev/rdsk/c0t0d0 : HFS, with 200MB reserved for swap
# newfs -F vxfs -R 200 /dev/rdsk/c0t0d0 : JFS, with 200MB reserved for swap
Mounting the New File System
# mkdir /myfs1
# mount /dev/vg01/myfs1 /myfs1
# mount -v
- 마운트 포인트는 어느곳이나 해도 상관없지만 특정히 정해진곳(/, /usr, /opt, /tmp)등은
하지 말아야 한다.
- 만약 비어있는 디렉토리가 아닌 디렉토리에 다시 마운트를 하게되면 이전의 디렉토리의 있던 내용은
현재 마운트되어 있는 상태를 언마운트 하지 않으면 hidden된다.
- 마운트 하려고하는 디렉토리가 다른 유저에 의해서 사용되고 있을 시에는 'device busy' 가 되면서
마운트 되지 않는다.
The unmount command
# umount /dev/vg01/myfs1
or
# umount /myfs1
[umount 옵션]
-a : 현재 파일시스템에 마운트된 것을 전부 언마운트
-F 파일시스템타입 : 특정한 파일 시스템만을 언마운트
-v : 언마운트 되는 과정을 디스플레이(언마운트되는 파일시스템도 보여줌)
< 유저에 의해 사용되고 있는 마운트 포인트를 언마운트 하는 방법 >
1) fuser명령어를 사용하여 어떤 유저가 현재 파일과 디렉토리를 사용하고 있는지 확인
# fuser -u /dev/vg01/myfs1
- 위 명령은 /dev/vg01/myfs1을 사용하고 있는 프로세스ID와 login names을 알려준다.
# fuser -u /etc/passwd
- 위 명령은 /etc/passwd를 사용하고 있는(열고 있는) 프로세스ID와 login names을 알려준다.
# fuser -uc /opt
- 위 명령은 /opt 파일 시스템을 사용하고 있는 프로세스ID와 login names을 알려준다.
2) 현재 파일시스템을 사용하고 있는 유저의 프로세스를 종료시켜서 언마운트 가능하게 한다.
# fuser -ku /dev/vg01/myfs1
- 이 명령을 실행하면 현재 /dev/vg01/myfs1를 액세스해서 사용하고 있는 모든 유저의
session이 없어진다.
3) 다시 모든 파일 시스템을 언마운트 한다.
# umount -a : 기본적인 파일 시스템은 언마운트 되지 않는다.(/, /usr, /opt, /tmp ...)
- 이전에 사용자가 사용하고 있는 /dev/vg01/myfs1의 프로세스가 모두 종료되었으므로
언마운트 가능하게 된다.
Automatically Mounting File System
1) /etc/fstab에 각항목에 맞게 마운트시킬 파일 시스템 정보를 입력
2) 시스템이 재부팅되면 /etc/fstab을 읽어들여 자동으로 마운트 시킨다.
or
mount -a 나 mountall명령어를 실행해서 다시 all 마운트 시킨다.
[ /etc/fstab의 항목]
block : block device 입력
directory : 마운트 시킬 디렉토리 입력
type : 파일 시스템 타입
* cdfs : local CD-ROM file system
* hfs : hige-performance file system
* nfs : network or remote file system
* vxfs : journaled file system
* swap : the device file name is made available as a piece of
swap space by the swapon command
* swapfs : the file system which directory resides
in is made available
as swap space by the swapon command
* lofs : the file system is a loopback file system
* ignore : marks unused sections(on multi-file system disks)
option * defaults :
* rw(default) : read/write
* ro : read-only
* suid(default) : set user-id allowed
* nosuid : no set user-id allowed
* quota : enables checking of disk quota on this file system
* noquota(default) : no quota checking on this file system
back-frequency : reserved for possible use by future backup utilities
pass-number : used by the fsck command to determine the order in which file system
checks are done
comment : a comment field(must be preceded by a #)
CD-ROM File System(CDFS)
# ioscan -funC disk
- CD-ROM의 block deivce를 찾는 명령어
# mkdir /cdrom
- 마운트 포인트를 생성한다.
# mount /dev/dsk/c#t#d# /cdrom
- CD-ROM를 마운트
# vi /etc/fstab
/dev/dsk/c#t#d# /cdrom cdfs ro 0 0
- local cdrom 드라이브를 /etc/fstab에 등록
# mount -F cdfs -o cdcase /dev/dsk/c#t#d#
- CD-ROM을 마운트 하기 위한 명령어
---------------------------------------------------------------------------------------
Module 11 File System Repair
---------------------------------------------------------------------------------------
File System Maintenance
- Check file system integrity : fsck
- Employ regular backup procedures : fbackup
- Monitor disk usage : bdf
Flushing the Buffer Cache
* sync
- Writes buffer contents to disk(버퍼 캐시를 디스크에 write)
- Keeps the file system current
- Is normally invoked on a regular basis by the syncer daemon
* syncer
- syncer is started automatically at system boot
- sync를 돌려주는 프로그램
Introducing fsck
왜 fsck를 실행하나?
- 파일 시스템 metadata의 무결성을 위해
- 충돌이 발생한 metadata의 복구를 위해
언제 fsck가 실행되나?
- 시스템이 비정상적으로 종료했을때 자동으로 실행된다.
- 충돌이 의심스러운 부분이 있을 때 수동으로 실행한다.
Running fsck
- /dev/vg01/myfs2에 대해서 fsck를 실행하는 방법
(1) mount -v : 현재의 파일 시스템 방식 체크
(2) umount /dev/vg01/myfs2
(3) fsck -F hfs /dev/vg01/rmyfs2 : character device 사용
(4) mount /dev/vg01/myfs2 : block device 사용
(5)
[fsck의 옵션]
일반적인 fsck 옵션
-n : fsck가 실행되는 동안 모든 물음에 no라고 응답한다. 파일 시스템의 현상을 체크하기 위해 사용
파일 시스템을 고치기 위해서는 다시 fsck를 실행하여 고쳐야 한다.
-y : fsck가 실행되는 동안 모든 물음에 yes라고 응답한다.
파일 시스템이 HFS일때 fsck 옵션
-b block# :
-f :
파일 시스템이 JFS일때 fsck 옵션
-o :
Checking lost+found
* lost+found 디렉토리
- fsck 파일의 내용을 만들어 놓는다.
- file 시스템 체크 후 여기에 갖다 놓는다.
- 나중에 확인 가능
- newfs 명령시 자동 생성됨
- 지워졌을 경우 mklost+found /대상디렉토리 명령으로 만들어주어야 한다.
---------------------------------------------------------------------------------------
Module 12 File System Management
---------------------------------------------------------------------------------------
Monitoring Disk Usage
# bdf -i
Filesystem kbytes used avail %used iused ifree %iuse Mounted on
/dev/vg00/lvol3 2804969 1774212 750260 70% 64551 396249 14% /
/dev/vg00/lvol1 83733 34130 41229 45% 33 13407 0% /stand
/dev/vg00/lvol6 498645 9 448771 0% 4 79868 0% /temp
/dev/vg00/lvol5 1001729 13185 888371 1% 116 164684 0% /msss
/dev/vg00/lvol4 99669 280 89422 0% 92 16036 1% /home
/dev/vg00/lvol7 1001729 72432 829124 8% 718 164082 0% /OpenTP1
/dev/vg01/lvol1 4103345 287263 3405747 8% 150 673450 0% /MARS2
/dev/vg01/lvol2 2051553 130 1846267 0% 52 337548 0% /MARS1
/dev/vg01/lvol3 2504465 77261 2176757 3% 631 410569 0% /HiRDB_P
- 현재 디스크의 사용현황을 보여준다.
- i옵션과 같이 쓰면 i-node에 대한 사용현황도 같이 보여준다.
# du -sk 디렉토리이름
- 현재 디렉토리에서 사용중인 사용현황을 자세히 보여준다.
- s옵션은 요약해서 보여줌
- k옵션은 Kbyte단위로 보여줌
Routine management
(1) 확장되는 로그 파일의 내용을 지워라
-
(2) core 파일 삭제
# find / -name core -exec ll {} \; : list all core files
# find / -name core -exec rm {} \; : remove all core files
(3) 오래된 파일들 삭제
# find /tmp -atime +30 -size +1000c -exec ll -ud {} \;
- 생성된지 30일이 지나고 1000자 이상의 파일에 대해서 리스트를 작성
(4) 파일 시스템 확장(여유 공간 있을때, 볼륨 그룹에 새 디스크 추가시)
Extending a Volume Group
(1) 새로운 디스크를 추가한 후 pvcreate명령어를 사용하여 Physical Volume로 만든다.
- 새로 추가될 디스크가 c0t5d0 이라고 했을때
# pvcreate /dev/rdksc0t5d0
(2) vgextend명령어를 사용하여 추가된 /dev/dsk/c0t5d0 디스크를 기존의 vg01볼륨 그룹에 추가
# vgextend vg01 /dev/dsk/c0t5d0
(3) vgdisplay 명령어로 확인
# vgdisplay -v
Extending a Logical Volume
(1) /dev/vg01/myfs2가 16M의 용량이 할당되어 있을시 32M로 확장하려고 하면
# lvextend -L 32 /dev/vg01/myfs2 /dev/dsk/c0t3d0
(2) lvdisplay 명령어로 확인
# lvdisplay -v
Extending a File System(HFS)
(1) 현재 마운트 되어 있는 파일 시스템을 언마운트 한다.
# umount /myfs2
(2) 파일 시스템을 확장한다.
# extendfs /dev/vg01/rmyfs2
(3) 다시 마운트
# mount /myfs2
(4) 용량 확인
# bdf
Extending a JFS File System(Without on-line JFS)
# umount /myfs1
# extendfs -F vxfs /dev/vg01/rmyfs1
# mount /myfs1
# bdf /myfs1
Extending a JFS File System(With on-line JFS)
# fsadm -F vxfs -b 32768 /myfs1
# bdf /myfs1
'IT 이야기 - About IT' 카테고리의 다른 글
HP-UX Admin 1 (Chapter 6-8) (0) | 2008.07.31 |
---|---|
[HP-UX] glance adviser 사용하기 (1) | 2008.07.31 |
[APACHE] Apache에서 maxclient 수 늘리기 (0) | 2008.07.31 |