LABORATORY

Posted
Filed under 리눅스

컴퓨터는 MSI FX420-Shock입니다.

우분투 10.10을 데스크탑모드로 깔 경우,  드라이버 업데이트를 하라고 합니다.
우분투에서 추천하는대로 업데이트를 자동으로 하게 되면 X윈두우로 접속이 되지 않고 shell로 접속되게 됩니다.
그럴경우, 뭐 방법이 없더군요..
그래서 다른 방법을 찾았습니다.

직접 드라이버를 받아서 설치하는 겁니다.
우선, 우분투를 설치한 다음 부팅을 하게되면 드라이버를 설치하라고 합니다.
그 메세지를 무시하고 바로 다음 주소로 가세요.

http://support.amd.com/us/gpudownload/Pages/index.aspx

해당하는 그래픽카드를 고른 다음, 운영체제는 리눅스(혹은 리눅스 64비트)를 선택해서 다운 받으세요.
더블클릭하으로 설치는 안됩니다.
터미널을 실행해서 해당 파일이 있는곳으로 간 다음 다음과 같이 입력합니다.
저는 파일이름이 ati-driver-installer-11-3-x86.x86_64.run 이었습니다.

shell에서 다음과 같이 입력합니다.

sh ati-driver-installer-11-3-x86.x86_64.run

그러면 자동으로 설치가 될 것입니다.
root비밀번호가 필요하므로 미리 root비밀번호를 설정해 놓으시길 바랍니다.:D

2011/04/24 16:06 2011/04/24 16:06
Posted
Filed under 리눅스
예.. 압니다.

저.. 한달째 삽질하다가 알아냈습니다.

저는 virtualbox 4.0.4버전을 portable로 만들어서 사용합니다.

개인적으로 필요한 프로그램을 portable virtualbox를 통해서 설치한 windows에 설치해서

외장하드에 넣어두고 다닙니다..

이번엔 centos를 하려고 한 것이죠...

우선, centos는 redhat 계열의 리눅스 입니다.

RPM 패키지를 사용하며, yum 또한 이용 가능합니다.

저는 Centos 5.5를 이용해서, 32비트르 설치 하였습니다..

셋팅방법만 하면 알아서들 할수 있을거라 생각됩니다.

셋팅은 별거 없습니다. 그냥 새로만들기를 눌러서 만들되, 반드시 redhat(혹은 redhat64비트)로 OS종류를 설정해 주세요..

저는 하드용량을 20기가로 하고, 메모리를 512로 설정하였습니다.

그리고나서, 설정 -> 시스템 -> 마더보드 에 가셔서 부팅순서의 플로피 디스크를 체크해제 하시고

IO APIC사용하기 체크, EFI사용하기는 체크해제를 확인해 주세요..

이후, 시스템 시작을 하게되면 OS 이미지를 넣으라고 합니다..

받아놓은 OS이미지를 선택하고 설치를 진행하면 됩니다.

아주 간단합니다..

추가 설정 스크린샷을 첨부하겠습니다.

유용하게 쓰시길 바랍니다..
사용자 삽입 이미지


2011/03/28 23:48 2011/03/28 23:48
Posted
Filed under 리눅스
시작하기전에 알려드립니다.
본 포스트에는 APM(Apache, Php, Mysql)설치과정이 담겨 있습니다.
정확히 APM설치만을 담고 있기 때문에, 추가적인 보안설정과 APM설정이 필요합니다.
추가적인 여러 설정을 하지 않아서 생기는 문제는 당사자에게 있습니다.

참고사이트는 http://blog.lovecoco.net이며,
참고서적은 [CENTOS 리눅스 구축관리 실무]입니다.

현재 구할수 있는 가장 최신의 안정화 버전으로 설치하였습니다.
설치환경은 Centos 5.5 on Vmware 7.0 입니다.
w.get에서 중간에 .은 빼고 입력하시길 바랍니다..


mysql 5.5 설치

more..

more..

more..

more..

more..

more..

more..

more..

more..





아파치 설치

more..






php설치

more..


2011/03/05 16:27 2011/03/05 16:27
Posted
Filed under 리눅스

 리눅스1 마지막 수업..

 

수업없이 실습시험

 


 

※ 여러분은 어떤 회사의 Linux Server 기본 세팅을 담당하게 되었습니다. 다음 조건을 확인하고

    이 회사의 여건에 맞게 초기 서버 세팅을 하세요

 

1. 서버의 기본 설치 방법은 X윈도우를 포함하지 않은 server 버젼으로 설치합니다.

   또한 이 서버는 외부망과 내부망을 연결한 server로 사용할 것이므로 LAN 카드가 두개 설치 되어 있어야 하며,

   이를 위해선 Bridge 네트워킹을 사용해야 할 것입니다.

 

 

2. 하드 디스크는 서버의 기본 설치를 위한 디스크로 IDE 방식의 20G 하드 디스크를 사용할 것이며,

   다른 용도로 사용할 IDE 하드 디스크 5G를 추가합니다.

   또한, 추가적인 구성을 위한 용도로 1G 짜리 SCISI 하드 디스크를 10개 추가 장착 해야합니다.

 

 

3. 이 회사는 총 5개의 부서로 이루어져 있으며 각 팀에는 각 5개의 계정이 필요합니다.

   팀의 이름은 각각 teamA, teamB, teamC, teamD, teamE 이며

   팀 내에 속한 계정은 다음과 같습니다.

 

   teamA - capA , a1, a2, a3, a4

   teamB - capB , b1, b2, b3, b4

   teamC - capC , c1, c2 , c3, c4

   teamD - capD , d1, d2, d3 , d4

   teamE - capE , e1 , e2 , e3, e4

 

   여기에서 cap? 형태로 되어 있는 계정은 각 팀의 팀장의 계정을 말합니다.

 

4. 리눅스가 설치되는 파티션인 IDE 하드디스크 20G는 default 파티션으로 설치합니다.

 

   그리고 나머지 하드디스크는 용도에 맞게 RAID를 구성하거나 single volume 형태로 사용할 것입니다.

 

 

5. RAID 세팅은 다음과 같습니다.

 

  RAID 0  - sda , sdb

  RAID 1  - sdc , sdd

  RAID 6  - sde , sdf , sdg , sdh , sdi

  single volume -  sdj

 

6. 각각의 디스크들이 마운트될 마운트 포인트는 다음과 같습니다.

 

                                                 /

         ┌──────┬─────┴─┬──────┐

      /logs          /teamworks         /secrets          /temps   

 (RAID0 Disk)    (RAID1 Disk)      (RAID 6 Disk)   (single Volume SCSI)

 

 

7.  위에 디렉토리의 대한 접근 권한은 다음과 같습니다.

 

  /logs - 모든사용자들은 이 디렉토리에 대한 쓰기권한을 제외한 모든 권한을 가지고 있습니다.

  /teamworks - 각 팀의 팀장을 제외한 모든 사람들은 디렉토리내의 파일을 볼수 있는 열람 권한만 가지고 있으며

                      팀장은 모든 권한을 가지고 있습니다.

  /secret - 이 디렉토리는 우선 관리자 이외에는 아무도 읽기, 쓰기, 접근을 할 수 없게 설정합니다.

  /temps -  이 디렉토리에서는 모든 구성원들이 자신의 자료를 저장하는 곳으로 사용하게 될것입니다.

                파일을 생성하거나 작성한 사람이 아니면 삭제권한을 갖지 못하도록 설정합니다.

 

 

8. linm 프로그램의 소스 파일을 받아 설치하되, 설치후 어디에서나 실행할 수 있도록 PATH 값이 지정된 디렉토리에

   심볼릭 링크를 만듭니다. 또한, 이 linm 프로그램은 각 팀의 팀장을 제외한 구성원들은 사용할 수 없게 만듭니다.

 

 

9. 초기 복구를 위해서 백업용 /etc 디렉토리와 /bin 디렉토리 , /sbin 디렉토리를 만들것입니다.

   백업을 위해서 tar를 사용할 것이며 이를 압축한 형태로

    /etc -> etc.tar.gz

    /bin -> bin.tar.gz

    /sbin -> sbin.tar.gz

  위와 같이 백업 압축 파일을 만들어 관리자가 /secrets 디렉토리에 저장해 둡니다.

 

10. 마지막으로 아래의 디렉토리 구조를 만듭니다.

 

                                                        /

                                                       │

                                                    /team

                  ┌─────┬─────┼────┬────┐

               /teamA        /teamB        /teamC     /teamD     /teamE

            

 

    /team 디렉토리에 앞에서 설치한 IDE 5G 하드 디스크를 mount 하고, 각 팀에서 사용할수 있는 용량을 1G 씩으로

   제한할 것이며, 또한 각 계정이 사용할 수 있는 용량을 200MB로 한정할것입니다. 그러나 각 팀의 팀장은 300MB씩

   사용할 수 있게 세팅합니다.

 


설정내용

 그룹

teamA 801
teamB 802
teamC 803
teamD 804
teamE 805
caps : 팀장들의 secondary group. 900


참고사항

링크파일에 대해서 permission을 설정할 경우, 원본파일의 permission이 바뀌게 된다.

 

ll / | egrep "logs|teamworks|secrests|temps"

 

egrep : 여러 문자를 한번에 검색할수 있는 명령어

이 글은 스프링노트에서 작성되었습니다.

2011/02/11 21:52 2011/02/11 21:52
Posted
Filed under 리눅스

 ..

시험봤음..:D : 리눅스마스터 1,2급 기출문제

 


  1. kill

    • kill명령어는 signal을 전달하는 명령어이다. 초기 유닉스에서 kill명령어는 프로세스를 종료시키는 목적으로 사용되었기 때문에 kill 이름을 붙였으나, 지금은 프로세스의 중지, 재실행, 이벤트 보고 등 여러가지 기능이 추가 되었다.
    • 시그널 리스트를 보기 위해서는 kill -l 명령을 이용한다.
    • 사용법 : kill [-signal] [PID or %jobnumber]

      • kill -9 %1 %3
    •  시그널 목록

      •  SIGHUP : hang up. 프로세스를 재시작 하도록 한다. 번호1
      • SIGQUIT : quit. 프로세스를 중단하여 core를 생성한다. 번호3.

        • 일종의 로그를 생성하는 것이다.
        • 로그는 커널이 작성하는 것이므로, 분석은 슈퍼컴퓨터가 한다.
        • 분석을 해도 알수 없는 오류라고 나온다. 많이 쓰지 않는다.
      • SIGKILL : kill. 강제 종료시킨다. 프로세스의 정상적인 종료와달리, 모든 자원을 강제로 회수한다.
      • SIGTERM : terminate. 프로세스를 종료시킨다. CTRL + C
      • SIGTSTP : temporary stop. 프로세스를 잠시 중단시킨다. CTRL + Z를 누를때 발생

 

이 글은 스프링노트에서 작성되었습니다.

2011/02/11 21:52 2011/02/11 21:52
Posted
Filed under 리눅스

 ..

 


  1. RAID 0 + 1

    • 속도가 가장 빠르지만 안정성이 매우 떨어지는 RAID0 방식과 안정성은 높지만 속도가 떨어지는 RAID 1방식을 조합한 방식이다.

      •  raid 0 + 1 은 앞에서 실습했던 RAID 0 과 RAID 1을 차례로 구성하면 된다.
      • 4개의 SCSI 하드 디스크를 linux raid auto 로 변경하고 파티션을 생성 한다.
      • raid 0으로 사용할 /dev/md0과 /dev/md1 장치를 만든다.
    • 순서

      • raid0 두개를 만든다. : md0과 md1
      • 이후 md2를만들어 md0과 md1을 raid 1로 만든다.
      • 이후 md2를 포멧한다.
      • 그 다음에 마운트한다. : 마운트하면 오래걸린다.
      • /etc/fstab에 설정하면 부팅하면서 마운트가 된다.
      • 명령어는 생략
    • 많이 쓰지는 않는다.

      • 각 raid0에서 하나씩만 고장나면 전체를 잃어버리기 때문에
  2. RAID 1 + 0

    •  RAID 1 이후 RAID 0을 할 필요는 없다 : 기본적으로 지원함

      • 단, mdadm이 버전 1.7이상 되어야만 한다.
    • raid10(1).JPG
    • RAID10을 사용할 장치인 /dev/md10장치를 생성하고 raid10장치를 사용할 디스크들을 만들어 준다.
    • 명령어

      • mknod /dev/md10 b 9 10
      • mdadm --create /dev/md10 --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
      • mkfs -t ext3 /dev/md10
      • mdadm --detail -scan or cat /proc/mdstat
      • mkdir raid10
      • mount /dev/md10 raid10
      • fstab에 기록 : 항상 마운트 되도록 하기 위해서

 

 


프로세스관리

  1. 프로세스란?

    •  윈도우에서와 마찬가지로 프로세스 관리를 통해서 현재 작동하고 있는 프로세스의 목록을 보거나 이를 멈추거나 혹은 백그라운드로 작동시키는 것이 가능하다. 또한 필요에 따라서 프로세스를 중단시키는 것 또한 가능하다.
    • 명령어 : ps, pstree

      • pstree로 보면 트리구조로 볼수 있다.
      • pstree에서 가장 위에 있는것은 init이다.
      • init는 1번 프로세스이다. 가장 먼저 작동하는 프로세스이다.
      • init가 실행된 이후, 다른 프로세스를 위해서 자신을 복사해준다. : fork과정
      • 엄연히 말해서, init를 제외하면 자기 스스로 만들어지는 프로세스는 없다. : fork과정을 통해서 필요한 프로세스를 할당받는다.
      • tree구조에서, 상위에 있는 프로세스는 하위 프로세스에 대해 부모 프로세스(ppid)이다.
      • pid를 할당받는다.
    • ps : unix에서 쓰이던 모든 버전별 옵션을 전부 가져왔다. 따라서 옵션이 상당히 많다. 유닉스의 ps명령어의 옵션을 표준화 하는 과정에서 호환성을 위해 하위버전의 옵션을 모두 표준화 한 것이다. 따라서, 필요한 것만 쓰면 된다.

      • ps : process status
      • 현재 프로세스 상태를 보여준다. 이 명령은 단지 리스트가 출력되는 것으로 프로세스의 계층 구조를 보고 싶다면 pstree를 사용해서 확인할 수 있다.
      • 사용법 : ps [옵션]

        • e : 모든 프로세스를 출력한다.
        • f : full format를 출력한다. 프로세스의 자세한 정보를 보여주는 것이다. 현제 세션의 프로세스만을 출력하지만, 모든 프로세스에 대한 정보를 자세히 확인하려면 일반적으로 ps -ef 명령을 사용한다.
        • l : long format 출력을 한다. --> full format보다 더 길고 자세하다.
        • no option : 자신이 속한 "세션"의 프로세스 만을 출력한다.

          • 세션 : 통신을 하는 시간동안 사용된 자원 범주 자체를 의미한다. 즉, 모든 통신 시간의 시작과 끝은 모두 세션이라고 할 수 있다.
      • ps -f를 이용하면, 트리구조도 대강 알수 있다.

        • UID : 해당 프로세스의 소유권자 ID
        • pid : process ID
        • ppid : parent PID
        • C : cpu점유율을 나타낸다. 왠만한 큰 프로그램 아니면 0으로 표시된다. ---> 0.00000x%를 할당받아서 사용하기 때문에..
        • stime : 프로세스를 시작한 시간.
        • tty : 현재 제어를 담당하고 있는 터미널 번호

          • 물음표로 나오는것은, tty를 할당받지 않고 백그라운드에서 돌아가는 프로세스이다.
        • time : 해당 프로세스를 위해서 cpu가 작동한 시간. 역시 거의 0으로 되어 있다.
        • cmd : 프로그램을 실행시키기위한 명령어 혹은 프로그램 이름이다. command의 약자이다. 현재 어떤 명령을 수행하고 있는지를 표시하고 있다.
        •  ps -ef를 그냥 사용한다.
      •  ps -l을 사용했을때 나타나는 정보 : long format. 가장 많은 정보를 보여주는 옵션이다.

        • F :  Process Flag. 프로세스의 종류를 의미한다.
        • S : State Code(상태코드)
        • UID : UID를 숫자로 표현
        • pid,ppid, c생략
        • PRI : Priority. 프로세스에 대한 우선순위를 나타낸다.

          • 실시간 우선순위.(Realtime priority)
          • 우선순위가 낮을수록 먼저 실행해야 하는 것이다.
          • 먼저 실행된것이 낮은 값을 가지고 있다.
          • NI값을 이용하면 PRI를 무시할 수 있다.
        • NI : nice값. 0으로 되어 있으면, PRI순으로 먼저 실행된다.

          • NI는 일반적으로 -9~9까지 설정한다.
          • NI가 -9를 하면 nice PRI값에 상관없이 먼저 실행된다.
          • NI를 조절하는것은 상당히 고급기술이다. 일반적으로 거의 쓰지 않는다.
          • 커널에서는 nice값을 먼저 확인한다.
        • ADDR : 메모리의 주소. 유닉스에서는 표시되는 경우도 있으나 거의 표시되지 않는다. -> 사용되는 프로세스 코어 이미지의 메모리 크기.
        • SZ : 메모리를 얼마만큼 할당받아서 사용하는지 나타낸다. KB단위이다.
        • WCHAN : 커널에서 머무르는 경우, 커널함수값. 그냥 넘어간다. 복잡하다.
        • tty, time, cmd 생략
        • 상태코드를 보는 것이 중요하다.
      • 상태코드 설명

        • D : 중단시킬수 없는 sleep상태(일반적으로 I/O 처리중인 프로세스).
        • R : 작동중 (Running)이거나 작동큐에 들어간 경우. 프로세스 중단 가능하다
        • S : 중단 가능한 Sleep 상태(보통 이벤트를 기다리는 중이다.).
        • Z : 좀비 프로세스 --> ps -el로 볼 수 있다.

          • 좀비프로세스 활동은 하지 않지만, 자원은 물고 있는 프로세스이다.
          • 부모 프로세스에게 quit signal을 보내면 부모 프로세스가 die sign(?)을 보내서 die를 시켜야 한다.
          • 그러나 부모프로세스가 die signal을 보내지 않으면 그 프로세스는 좀비 프로세스가 된다.
          • 프로세스는 quit signal한번만 보내면 끝이기 때문이다.
      • 좀비프로세스

        • 일반적으로 유닉스 계열에서는 프로세스는 무조건 복제를 통해 만들어진다.(스스로 생성되는 프로세스는 없으므로. 단, 맨처음 프로세스인 init는 제외)
        •  이러한 프로세스의 복제 과정을 fork라 하는데, 사전적 의미로 나뉘어 진다라는 의미이다.
        • fork된 프로세스를 자식 프로세스(child process)라 하며, 반대로 fork한 원본 프로세스를 부모 프로세스(parent process)라고 한다.
        • 프로세스의 종료 과정에서 자식 프로세스는 부모 프로세스에게 quit signal을 보내게 되는데, 이에 대한 응답이 없을 경우, 해당 프로세스는 할당된 자원을 반화낳지 않고 그대로 메모리에 모무르게 된다. 이러한 프로세스를 좀비 프로세스라 한다.
    • jobs, fg, bg

      • 참고

        •  ctrl + c : 프로세스를 kill한다. 메모리상에서 없어진다.
        • ctrl + z : 프로세스를 중단한다. 이 경우, kill되지는 않은 상태이다. 일종의 좀비 프로세스이다. jobs명령으로 확인하면 나타난다.
      • jobs

        • 2개이상의 작업이 백그라운드에 있을때, 그 작업들을 볼수 있다.
        • 백그라운드의 작업은 직접 컨트롤이 불가능하다.
        • 작업번호는 가장 먼저 나오는것이 작업번호이다. : %[번호]를 써야 해당 번호가 입력된다.
      • fg,bg

        • fg %[작업번호] : 직접 컨트롤 가능
        • bg %[작업번호] :직접 컨트롤 불가능
    • 작업 죽이기 : kill

      • kill -l : 시그널 리스트를 볼수 있다.
      • kill -[이름] 도 가능하지만, kill -[번호] 를 많이 쓴다.
      • 연구용도 많기 때문에 일부분만 알고 있으면된다.
      • 3, 9, 15번만 자주 쓴다.  -> 3개 모두 비슷한 기능이다.
      • 표준화하는 과정에서 하위 옵션을 모두 가져오기 위해서 쓴다.
      • kill할때는 대부분 9번을 쓴다.
      • 형식 : kill -9 [pid]
      • jobs에서도 가능하다.

        •  kill -9 %[jobs상의 작업번호]
        • ps -ef에서 검색해서 kill해도 된다. kill -9 [pid]
    •  

이 글은 스프링노트에서 작성되었습니다.

2011/02/11 21:52 2011/02/11 21:52
Posted
Filed under 리눅스

  raid 1, 2, 5...

 

콘솔창에서 화면 올리는것 : shift + page up


부팅을 바로 콘솔로 넘어가도록 하는방법

vi /etc/inittab

여기서, default runlevel에 대한것만 바꾸면 된다.

5번 x11이 x윈도우이다.

여기서 5를 3으로 바꾸면 바로 콘솔로 부팅된다. --> full multiuser mode가 콘솔모드이다.

 


1기가 하드 처음2개는 raid 0으로 구성할예정

다음 2개를 raid1로 구성할 예정이다.

 

  1. RAID 1 설치

    • fdisk /dev/sdc 명령으로 /dev/sdc장치의 /dec/sdc1파티션을 생성 하고 파일 시스템 유형을 fd(linux raid auto)로 선택하고 저장 종료
    • /dev/sde장치도 마찬가지의 작업으로 수행
    • /dev/md1 논리 디바이스가 없을 것이므로 아래 명령어로 /dev/md1 장치를 추가해 주어야 한다.

      • mknod /dev/md1 b 9 1
      • 명령어의 옵션에서 b는 block device를, 9는 장치의 주번호가 9번임을, 1은 1번째 장치임을 나타낸다.
    • mdadm --create /dev/md1 --level=1 --raid-device=2 /dev/sdc1 /dev/sdd1
    • mdadm --detail --scan or cat /proc/mdstat

      • raid장비가 잘 생성되었는지 확인하는 명령어
    • mkfs.ext3 -c /dev/md1 : md1파티션을 ext3로 포멧한다
    • mkdir /raid1 ; mount -t ext3 /dev/md1 /raid1 ; df

      • 마운트와, 확인작업
    • 또한 /dev/md1 장치가 항상 /raid1에 마운트 되도록 /ets/fstab에 설정한다.
  2. RAID 5 & 설치

    • 실제 업무에서, 패리티 하드가 나갔으면 다른 하드들도 수명이 다한 것이기 때문에 빨리 교체해야만 한다.
    •  raid5.JPG
    • 연습용은 sde부터 sdg까지 3개를 만든다.
    • 디스크 2개이상 고장나면 끝난다.
  3. test

    • 각각에 디렉토리에 데이터를 만든다.
    • cat > ./test : 이후 아무거나 글쓴다.
    •  분명히 raid1과 raid5는 데이터가 남아 있다.
    • poweroff이후 raid1과 raid5 하드중 하나씩 삭제
    • 이후 다시 부팅 : 데이터 존재 확인, cat /proc/mdstat 로 확인
    • raid0 디렉토리에다가도 같은짓을 한 다음, raid0 구성 디스크 삭제
  4. 복구

    • 복구를 위해서 다시 하드 추가(poweroff이후 1기가 하드 2개 추가)
    •  부팅후, 추가한 하드 2개 fd로 파티션 설정
    • fdisk -l : 장비와 파티션의 리스트가 나온다.
    • 새로운 하드 추가는 autodetect일때는 그냥 끼워 넣기만 하면 된다.
    • 지금은 디스크가 고장났음에도 정상적으로 디스크를 사용할 수 있지만, 나머지 디스크마저 고장나게 된다면 데이터의 복구가 절대 불가능하다. 따라서 고장난 디스크는 빠르게 새로운 디스크로 교체해 주어야 한다.
    • raid 1과 raid 5 의 고장난 디스크의 복구를 위해 새로운 디스크 설치

      •  추가된 디스크는 linux raid auto형태로 포멧변경
      • 추가 명령어 mdadm [논리드라이브] --add [추가할 장비]
      • mdadm /dev/md1 --add /dev/sdd1 명령을 이용하여 raid1 장치인 /dev/md1에 /dev/sdc1 장치를 추가 해 준다.
      • mdadm /dev/md5 --add /dev/sdf1 명령을 이용하여 raid5 장치인 /dev/md5에 dev/sdf1 장치를 추가해 준다
    • 복구 과정을 보고싶다면, 추가후 바로 cat /proc/mdstat명령을 통해 확인할 수 있다.
    • 복구과정을 추가한 다음, restore이후 디스크의 갯수가 raid1용 디스크 2/2, raid5용 디스크 3/3이 되었음을 확인한다.
    •  raid0의 경우 디스크 하나가 날라가면 복구가 되지 않는다!!!

      •  raid0의 경우, restore라는 것 자체가 없으므로, raid0을 다시 만들어야 한다.
  5.  연습

    • 1,2번 디스크는 raid1, 3~7번 디스크는 raid5
    • 디스크 날리고 다시 설치하는것 연습
  6. raid6

    • disk2개이상 고장나도 사용할수 있다.
    •  데이터 저장방법
    • raid6.JPG 
    • 2개의 하드가 고장나도 대각선 패리티를 보고 복구할 수 있다.
    • 다만, 효율이 극히 떨어진다.
    • n-2 의 용량을 쓸 수 있다.
    • 셋팅방법은 같다
    •  연습은 5개의 하드로 한다.
    • 별로 쓰이지는 않는다.
  7. raid6 복구

    • 똑같다.
    • 디스크 설정(생략)
    • 추가 명령어 : mdadm /dev/md6 --add /dev/sdc1 /dev/sde1
    • 하드 2개 추가는 이어서 써주면 된다.
    •  raid6복구1(2).JPG raid6복구(3).JPG 

 

 

이 글은 스프링노트에서 작성되었습니다.

2011/02/11 21:46 2011/02/11 21:46
Posted
Filed under 리눅스

 LVM과 RAID에 대해서

 

셧다운 명령어

shutdown -h 0

shutdown -h now

init 0

poweroff

 


  1. LVM과 RAID란?

    • LVM과 RAID는 똑같다 : 다수의 하드 디스크를 하나로 묶어 사용하는 기술
    •  실무에서는 IDE는 쓰지 않는다 : vmware로 구성할때 sda형태로 1기가짜리 7개를 만든다.
  2. LVM(Logical Volume Manager)
    • 여러 하드디스크를 합쳐서 하나의 파일시스템처럼 사용하는 방법
    • 작은 용량의 디스크 여러개를 하나의 하드 디스크처럼 사용할수 있게 하는 방법
    • 대용량의 별도 저장공간이 필요할때 사용한다.
    • 디스크 크기가 달라도 상관없다.
    •  용어

      • Physical Volume : /dev/hda1, /dev/sda1 등의 물리적인 디스크 볼륨을 말한다.
      • Volume Group : Physical Volume를 합쳐 하나의 물리적인 그룹을 만드는 것을 말한다.
      • Logical Volume : Volume Group를 나누어 하나의 논리적 그룹으로 나누는 것을 말한다.
    • VMWARE에서 지원하는 스냅샷을 만들어 놓자!!!
    • LVM구현

      • LVM을 구현하기 위해서 SCSI 하드 디스크를 사용하고 싶은만큼 장착한다.
      • 연습용으로 각 1기가짜리 디스크를 7개를 추가하였다.
      • fisk /dev/sda ~ /dev/sdc 까지 모두 sda1 ~ sdc1 의 파티션으로 만들고 LVM(8e)로 선언해 준다.

        •  fdisk로 들어가서 파티션을 만든 후, t를 눌러서  파티션 ID를 바꾼다..
        • 이후에 L을 누르면 리스트가 나온다. 거기서 골라서 하면 된다. 연습용이므로, 8e(LVM)을 쓴다
      • pvcreate 명령어를 사용하여 각각의 디스크에 대한 physical volume을 생셩해 준다.

        •  pvcreate/dev/dsa1
        • pvcreate /dev/sdb1
        • pvcreate /dev/sdc1
      • 생성한 3개의 physical volume을 하나의 볼륨으로 묶는다.

        • vgcreate [볼륨이름] [장비1, 장비2, 장비3...]
        •  vgcreate zombie /dev/sda1 /dev/sdb1 /dev/sdc1
      •  Volume Group zombie가 3기가로 설정되어 있음을 확인하려면 다음과 같은 명령어를 입력

        • vgdisplay
      • CentOS에서 사용하는 일반적인 디스크이 파티션 생성을 위해서는 fdisk를 사용하지만, Volume Group의 파티션을 생성할 때는 lvcreate 명령을 사용한다.

        •  lvcreate -L 2.98G -n zombie1 zombie
        • 설명 : lvcreate -L [파티션크기] -n [파티션이름] [Volume Group name]
        • 이런식으로 여러개로 나누면 되지만, LVM을 쓰면서 다시 나누는짓은 LVM을 쓰는 목적에 부합된다.
      • 위와같이 만든 후에, 쓰는 목적에 따라 알아서 포멧한다. -> 우리는 mkfs로 한다.
      • 그리고 나서 mount를 한다.
      • 많이 쓰지는 않는다.(이유는, 하나가 날라가면 죄다 날라가기 때문에)
      • 장비는 /dev/[volume group]/[volume name]에 링크되어 있다. 실제 장비는 /dev/mapper/~ 있다.
    • 예제 : 4개의 디스크를 LVM하여 부팅후에도 항상 그 자리에 mount 되도록 /etc/fstab에서 정의하시오.
    • 삭제

      •  umount
      • Logical volume 삭제 : lvremove [device]
      •  옵션 -f 는 강제사항이다.
      •  physical volume 삭제 : pvremove -ff [device] -> 여러개일테니까 여러개 해야한다. ff는 반드시 들어가야한다.
      • 확인 : pvdisplay, lvdisplay
      • 이후 fdisk로 파티션 삭제
  3. RAID

    • Redundant Array of Indexpensive Disk
    • 디스크 크기가 전부 같아야만 한다.
    • 여러 디스크를 하나의 디스크처럼 사용함으로써 비용을 절감하고 성능을 향상시키기 위한 저장 장치를 의미
    • hardware RAID와 software RAID로 나눌 수 있다.
    • hardware RAID

      • 하드웨어 RAID는 하드웨어 제조업체에서 여러 하드디스크를 이용하여 장비를 만들고그 자체를 공급하는 것.
      • 소프트웨어 RAID에 비해 좀 더 안정적이며, 제조업체에서 기술지원(A/S)을 받을 수 있으므로 대형 서버에서 선호
      • 단점은 가격이 너무 비싸다.
    • software RAID

      •  고가의 하드웨어 RAID에 대한 대안으로, 하드 디스크만 있으면 운영체제에서 지원하는 방식으로 RAID를 구성할 수 있는 방법.
      • 하드웨어 RAID에 비해서 신뢰성(안정성)이나 속도가 떨어질 수 있지만, 저럼한 비용으로 좀 더 안전한 데이터의 저장이 가능하다.
    • RAID LEVEL

      • 구성 방식에 따라 0, 1,2,3,4,5까지 6개로 분류된다.
      • 실무에서는 주로 RAID 0m, 1, 5 그리고 RAID5의 변형인 RAID 5+1, 6 그리고 RAID 0+1, RAID10 등이 사용된다.
    • LVM은 2개이상의 하드 디스크를 1개의 volume으로 사용하며, 앞 하드 디스크에 데이터가 모두 저장된 후에 다음 디스크에 데이터가 저장되는 방식이다.
    •  설명

      •  raid0

        • 두개의 하드에 자료를 나누어서 저장한다.
        • 하나의 데이터를 나누어서 저장하기 때문에 하나의 하드가 날라가면 다른 하드에 남아있는 데이터는 완전하지가 않다.
        • 디스크 사용에 대한 효율은 좋아지지만, 안정성은 조금 떨어진다..
        • 전체 하드 디스크를 쓸수 있다.. ex) 400+400 = 800
        •  
        • 데이터를 순차적으로 하나씩 나누어져 있는 디스크에 따로 저장하게 된다.
        • 속도면에서 가장 서능이 뛰어나다고 할 수 있으며, 디스크의 갯수만큼 용량을 모두 사용하므로 공간 효율이 뛰어나다
        • 하지만 디스크 하나라도 고장나면 전체 데이터가 소실된다.
        • 빠른 성능을 요고하되, 잃어버려도 큰 문제가 없는 자료들을 저장하는데 적당한 방식
      •  raid1

        • 두개의 하드를 쓰지만, 하나의 하드에 저장한 다음에 다른 하드에 같은 내용을 저장한다. : mirroring
        • 사용 효율은 떨어지지만 안정성은 좋다.
        • 2개 이상의 하드디스크 미러링은 raid5를 쓴다.

          raid1.JPG 

        • 즉, RAID1 방식에서 1024 MB를 저장하기 위해서는 2048MB의 용량이 필요하다
        • 두배의 저장공간이 필요하기 때문에 두배의 용량이 필요하므로 효율적인 측면에서는 RAID 0에 비해 현저히 떨어진다.
        • 속도면에서 두개의 디스크에 같은 데이터를 동시에 저장하므로, 데이터 저장시의 시간 손실은 없다고 말할 수 있다.
      • 비교 : raid0 & raid1

        • 성능(속도) : 빠름 | 변화없음
        • 결함 허용 : 허용함 | 허용안함
        • 공간 효율 : 좋음 | 나쁨
      •  raid 5

        • 최소 3개 이상의 하드 디스크가 있어야 구성할 수 있지만, 일반적으로 5개 이상으로 구성한다.
        • 오류가 발생했을 때 parity를 이용하여 데이터를 복구할수 있다는 장점이 있다. : 가장 마지막 하드 하나를 parity저장용으로 쓴다.
      • raid 6

        • 많은 디스크를 RAID로 구성할 때 디스크 2개가 고장나면 복구가 불가능 하다
        • 이에, 여러개의 디스크로 RAID5를 구성할 때 신뢰성을 높이기 위해서 RAID 6 방식을 사용할 수 있다.
        • 하지만 RAID6는 parity를 2개 생성해야 하므로 wirte(쓰기) 알고리즘이 복잡해져 성능이 RAID5보다는 떨어지게 된다.
      • RAID 0 + 1

        • RAID 0 으로 구성한 데이터를 RAID 1 하는 방식 (Stripping -> mirroring)
        • 신뢰도는 RAID 5와 같다고 할수 있지만, 비용이 2배가 들기 때문에 좋은 방법은 아니다.
      • RAID 10(1+0)

        •  RAID 1 한 데이터를 RAID 0하는 방식 (morroring -> stripping)
        • RAID 0 + 1과 마찬가지라고 할 수 있지만, 안정성과 속도 면에서 0 + 1보다 더 좋다

RAID설치

 

  1. 설치준비

    • 설치를 위해 먼저 SCS 하드 디스크를 7개 준비, 시스템에 적용(1G * 7)
    • VMware의 설정창에서 하드디스크 7개가 실행되는지 확인.(실제 장비는 실행되는것을 확인)
    • dev에 sda ~ sdg 까지 디스크를 확인한다.
    • RAID를 구성하기 위한 패키지로 'mdada"를 사용한다. : 레드헷 리눅스에서는 raidtools라는 패키지를 사용한다. 시스템에 mdadm이 설치 되어 있는지를 확인한다.

      • rpm -qa | grep mdadm
      • mdadm 1.7이하는 RAID10 구성 불가.
      • 되도록 최신 버전으로 업그레이드 하는 것이 좋다.
  2. RAID 0 설치

    • fdisk /dev/sda 명령으로 /dev/sda1파티션 생성. 여기서 파일 시스템의 유형을 fd(Linux Raid Auto)로 선택하고 저장 후 종료한다.
    • 논리 디바이스를 직접 가져다 쓴다 : 리눅스에서 원래 구성해놓은것이 하나 있다. : /dev/md0
    • 필요하면 다시 생성한다.
    • ls -l /dev/md? 명령으로 /dev/md0장치가 있는지 확인하고, 없다면 명령으로 추가한다.

      • mknod /dev/md0 b 9 0        : 논리디바이스를 만드는것. md0 논리디바이스
      • b는 Block Device를, 9는 md장치의 주 번호가 9번임을, 0은 0번째 장치임을 의미한다.
      • 9번은 md 자체의 구성넘버이다..
      • md0의 0과, 9 0의 0은 항상 같다.
    • 설치명령어 : mdadm

      • mdadm --create /dev/md0 --level=0 --raid-device=2 /dev/sda1 /dev/sdb1

        • mdadm [md0으로 만들되] [raid0이고] [2개 하드를 묶는다. 그 하드들은 이어서 나온다.]
      •  mdadm --detail --scan : 확인용 명령어. 이 명령으로 해서 디바이스가 제대로 나온다면, 포멧후, 마운트해서 사용할 수 있다.

        •  mkfs.ext3 -c /dev/md0 : /dev/md0 파티션을 ext3으로 포멧한다.
      • 마운트 이후 df명령으로 정상 설치되어 있는지 확인한다.
      • fstab에 기록해 놓으면 dev/md0에 추가하면 된다.
    • 예제 :  sda와 sdb, sdc와 sdd를 raid0으로 구성, 각각 /raid0_1, raid0_2 에 항상 mount되도록 설정.

 

 

이 글은 스프링노트에서 작성되었습니다.

2011/02/11 21:46 2011/02/11 21:46
Posted
Filed under 리눅스

 ...

 


닥치고 snort 깔아보기.

주의사항 : snort는 의존성 패키지의 버전에 굉장히 민감하다

 

뭔가를 깔아야 할때, -devil이나 lib-가 붙은걸 깔아야 해더가 같이 설치된다.

 

언제나 gcc와 gcc+를 먼저 깔아야만 한다.

snort : snort-2.9.0.3.tar.gz

 

의존성

daq-0.5.tar.gz

libdnet-1.11-1.1.e13.rf.i386.rpm

libdnet-devel-1.11-1.1.e13.rf.i386.rpm

libpcap-1.0.0.tar.gz

 

파일들 : snort_install.tar.gz

 

 


연습 : gnu.org에 download에가서 midnight commander 설치

slang.h필요 : yum install -y *slang*

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

2011/01/31 13:09 2011/01/31 13:09
Posted
Filed under 리눅스

 참고사항

 

현재 작업위치 출력

 

.bashrc파일을 열어서 추가

 

PS1="[\u@\h \w] \\$"

자세한 정보는  http://rustynail72.blog.me/70092161188 참조

=========

\u = your username
\H = full hostname, e.g. bob.example.com
\h = reduced hostname, e.g. bob
\w = full working directory, e.g. /home/jamie/bin
\W = basename of the working directory, e.g. bin
\t = time in 24-hour format
\# = command number
\$ = root identifier; $ for regular users, # for root
\T = time in 12-hour format
\l = terminal device, e.g. tty4
\j = number of background/suspended processes

==========

 


방화벽

ids = 침입을 검사만 한다.

ips = 검사해서 걸린 것들을 방어한다(?)

 


원래 하던것 하기.


./configure할때는 에러메세지를 확인.

그 에러메시지의 패키지를 찾아서 설치하는 것이다.

실행파일은 죄다 bin에 있다.

실행은 ./파일명

path값 지정.

 echo $PATH 로 확인.

여기중에 한곳에 symbolic link를 건다.(대부분 /bin에 링크파일을 넣어놓는다.)

 

ln -s /원본위치 /타겟위치

 

링크는 덮어쓰기가 안된다.

 

rpm -qa | grep linm 으로 찾을 수 없다.

find로 찾아야만 한다. : 그거 귀찮으니까 따로 만든 것이다.

 


MISSION : symbolic link까지 만들기.


source compile을 위해서 조금 더 편리하게 하기.

  1. yum manager : 지정된 서버에서 RPM 패키지를 검색해서 자동으로 설치까지 해주는것.

    • 인터넷이 연결 되어야만 한다 : YUM은 dns기반.
    • 설정파일 --> /etc/yum.conf : 설정파일 안에 서버 주소 같은게 들어 있다.
    • 형태 : yum [옵션] [명령] [패키지이름]
    • 옵션

      • y : yum으로 찾아서 인스톨을 하시오. 설치한다는 질문을 하지 않고 바로 할수 있다.
      • ex) yum -y install [dhcp]

       

  2. wget : 인증이 필요하지 않는 사이트에서 파일 받기

    •  wget [server address]
    • 서버주소는 http or ftp등의 mirror이다.
    • 현제 작업하고 있는 위치에다가 다운받는다.
    • 예제 : http://www.snort.org에서 IDS받기 : 방화벽이다.

오늘 리눅스 재설치 : 처음에 하던대로..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이 글은 스프링노트에서 작성되었습니다.

2011/01/31 13:09 2011/01/31 13:09