2015년 8월 1일 토요일

리눅스 서버 알아보기_05. 파일시스템

파일 시스템과 링크

유닉스에서는 inode 라는 파일 시스템 구조를 지님

mkdir root/test
cat <aaa.txt
hello~
ctrl+z

ls -ial

1. inode
파일 앞에 번호가 붙는데(퍼미션앞에)
   이걸 inode라고 함
  퍼미션 뒤에는 링크 라는 번호가 붙음

inode 값 ---- 파일명이 mapping 되어 있음
   각 파티션마다 inode란 특별한 파일의 저장정보
   를 가지고 있는 저장장소(metadata)를 가짐

해당 inode 에서 관리하는 정보는
 -> 해당 파일의 주인, 그룹, 퍼미션
     파일타입, 하드링크 갯수, 파일 size, 파일 최종 수정정보
     파일 첫번째 블락 하드디스크 포인터(물리 저장 위치)
   + 디렉토리도 inode를 지님 => 리눅스에서는 파일 개념임
   + 해당 inode만 알면 파일에 접근이 가능하다.
   + 해당 파일에 접근하려면 반드시 inode로 접근해야함

2. link
 1) 하드링크
   같은 inode로 다른 파일명으로 지칭 할수 있다.
    => 파일은 같지만 이름이 틀림
   in 명령으로 링크를 부여해 줄 수 있다.

>in aaa.txt haaa.txt
   1086 aaa.txt   링크는 1
   1086 haaa.txt 링크는 2

이때 aaa.txt를 삭제해도 1086 은 사라지지 않음
   다만 haaa.txt 링크가 1로 셋팅됨
반대로 haaa.txt만 지원도 1086 은 사라지지 않음
aaa.txt, haaa.txt 둘다 지워야 1086 이라는 inode가
  같이 삭제된다.

하드링크의 단점 : 파티션 경계를 넘어갈 수 없음
     !! 파티션 내에서만 사용가능함
/apm>in /root/test/aaa.txt haaa.txt
 error

 2) 소프트링크(파일 속성앞에 L 로 표시됨)
   하드 링크 단점을 개선하기위한 방법
 in -s 옵션을 통해서 소프트 링크를 부여가능하다.

/apm>in -s /root/test/aaa.txt saaa.txt


다만 이렇게 명령시 하나의 inode를 두개 파일이 공유하는게
   아니라 saaa.txt 가 aaa.txt 의 inode를 포인터로 가지고
   있는게 됨
   결과적으로 saaa.txt의 inode 값도 틀리고, 링크도 1로 부여

>ls -ial
   saaa.txt -> aaa.txt

이런식으로 표시가됨
이후 aaa.txt를 삭제해도 saaa.txt는 남아 있음

>rm -rf aaa.txt
>ls -ial

 다만 ls 명령시 링크 원본이 지워졌다는 표시를
   붉은색으로 표시해줌

활용예) /root/manage
  자주 실행하는 디렉토리 및 파일에 대한 링크를
   보관하여 사용 가능

2. 디스크 할당량 제약 부여

 리눅스 처음 ip잡기 -> 사용자 만들고 권한 부여하기
   -> 서버 구축

사용자 권한 부여기능중에
   사용자별 디스크 용량을 부여가능하다.
   윈도우에서는 쉬운데 여기서는 좀 어렵게 관리됨

사용자 용량을 제한 하는 방법은(디스크 쿼터)






  1) 하드디스크 추가
VM 에 하드디스크 1개 추가(1g)

  2) 파티션
>fdisk  /dev/hda ☜
Command (m for help) : m ☜(헬프)
Command (m for help) : p  ☜(확인)
Command (m for help) : n  ☜(새로 만들기)
Command (m for help) : p  ☜
.. 이제 생성된거 확인
Command (m for help) : d  ☜ (삭제)
Command (m for help) : w  ☜ (저장)

  3) 포멧
>mkfs.ext3 /dev/hda1☜   (포맷)
(새로 생성한 하드디스크 포맷)
>mkdir / mydisk☜

  4) 마운드(mount~)
>mount /dev/hda1 /mydisk☜
(포맷한 내용을 mydisk 라는 폴더로 할당)

  5) /etc/fstab 파일설정(자동마운팅)

>vi /etc/fstab ☜ (폴더별 마운팅 내용을 보여 줌)
....
/dev/hda1           /mydisk             ext3     defaults     1 2
...
위 내용을 추가(기존 내용을 복사해서 넣을 것)

>reboot☜
재부팅 후 마운팅 정보가 갱신됨

/etc/fstab ->등록된 내용은 자동 마운팅 됨
....
/dev/hda1           /mydisk             ext3     defaults     1 2
...

3번재 옵션 - 파일 포맷 보통 ext3 임

4번째 옵션 default 의 세부 옵션
   (4번째 defaults는 - rw, nouser, auto 각각 지정임)
    나머지 세세한 옵션이 더 있으나 중요하지 않음

  1) rw<읽기, 쓰기 가능>, ro<읽기만 가능 cd롬>

  2) nouser - 일반 사용자는 마운팅 불가능, root만 가능
     user - 일반 사용자도 마운팅 가능

  3) auto - 부팅시 자동마운팅
     noauto - 자동 마운팅은 하지 않는다.

5번째 옵션
  ....  1 2의 의미

  1) 첫번째 숫자
   0 백업 안함
   1 백업 함

  2) 두번재 숫자
   0 미체크
   1 체크함, 우선순위가 높음
   2 체크함, 우선순위 낮음

3. 디스크 쿼터 설정 순서 

  1) /etc/fstab에 쿼터를 가져갈 파티션에
     usrquota 옵션 추가하기
>vi /etc/fstab
    .................
    .../mydisk ....defaults,usrquota  ........
    ..................

  2) 리부팅
> reboot
.....
> mount
.....
........ /mydisk type ext3 (rw, usrquota)
......
> df -h 로 확인
  (확인하는 다른 방법)

  3) quota.user 파일을 생성
>cd /mydisk
>touch quota.user
>chmod 600
(기존 644 퍼미션을600으로 변경)

**** quota 관련 명령어****
>quotacheck (쿼터 사항을 체크)
>edquota (쿼터 설정하기)
>quotaon (쿼터 기능 on)
>quotaoff (쿼터 기능 off)
>repquota (쿼터 설정 확인)
>convertquota (쿼터 기능을 커널에게 알림)

  4) 체크
>quotacheck -a
>quotacheck -a -m

  5) convertquota -u /mydisk
      (커널에게 /mydisk를 쿼터기능 사용하겠다고 알림
       -> 파일이 하나 자동으로 생성됨 aquota.user)
>ls -al
   ..... aquota.user

  6) edquota -t (유예기간 확인)
~~~~black grace period       inode grace period
    : 블록(저장용량) 단위 혹은 inode( 파일) 숫자로도
      제한이 가능함.

  7) edquota -u babo (유저에게 쿼터 추가)
    Filesystem   blocks   soft    hard    inodes    soft
                    0         0        11000            0       0
   : 의미 : 11메가를 쓸수 있다.

  8) quotaon -a(쿼타 기능을 on) + repquota (확인)
>quotaon -a
>repquota -a
   -> reportquota 줄임
       내용을 볼 수 있음 (유예기간 및 내용을 확인 가능)

>quotaon -a
>repquota -a
    -> 이때는 내용이 보이지 않음(쿼타를 적용하지 않기 때문에)

댓글 없음:

댓글 쓰기