하드웨어의 이해
1) CPU(Central Processing Unit): 컴퓨터 시스템 전체를 제어하는 장치로서 중앙 처리 장치라고 부름.
- 레지스터(Register): 중앙 처리 장치에 있는 일종의 임시 기억 장치이고, 아주 적은 데이터를 잠시 저장할 수 있는 공간이며, O/S가 제어권을 넘긴 다른 프로그램으로 데이터를 전달하기 위한 장소를 제공함.
- 산술 논리 연산 장치(Arithmetic-Logic Unit): 중앙 처리 장치의 한 부분으로서 컴퓨터 명령어 내에 있는 연산자들에 대해 연산과 논리 동작을 담당.
- 제어장치(Control Unit): 비교, 판단, 연산을 담당하는 논리 연산장치와 명령어의 해석과 실행을 담당함.
- 롬(ROM: Read Only Memory): 컴퓨터에 미리 장착되어 있는 메모리로서 저장되어 있는 데이터는 읽을 수만 있고 그 값을 변경 할 수 없음. 컴퓨터 부팅되거나 재설정 위한 프로그램을 저장하고 있으며, 비휘발성임.
- PROM(Programmable ROM): 사용자에 의해 내용이 한 번 수정될 수 있는 롬.
- EPROM(Erasable Programmable ROM): 메모리 속에 저장된 내용을 지우고 재사용 할 수 있는 PROM으로서 메모리 칩의 표면에 부착된 유리창을 통해 강렬한 자외선을 비추면 ROM 내의 내용이 삭제됨.
하드웨어의 선택
RAID(Redundant Array of Independent Disks): 잃어버려서는 안되는 중요한 데이터를 가지고있는 서버에 주로 사용되며, 여러 대의 하드디스크가 있을 때 동인한 데이터를 다른 위치에 중복해서 저장하는 방법(하나의 RAID는 하나의 디스크로 인식).
- RAID-0: 중복되지 않는 Array를 가지는 것으로 스트립은 가지고 있지만, 데이터를 중복해서 기록하지는 않는다. 따라서, 가장 높은 성능을 기대할 수 있지만, 고장대비 능력이 전혀 없다.
- RAID-1: 디스크 미러링으로, 중복 저장된 데이터를 가진 적어도 두 개의 드라이브로 구성된다. 각 드라이브를 동시에 읽을 수 있으므로 읽기 성능은 향상되고, 쓰기 성능은 단일 디스크 드라이브 경우와 같다. 다중 사용자 시스템에서 최고의 성능과 최고의 고장 대비 능력을 발휘 한다.
- RAID-2: 디스크들 간에 스트립을 사용하며, 몇몇 디스크들은 에러를 감지하고 수정하는데 사용되는 ECC 정보가 저장되어 있다.
- RAID-3: 스트립을 사용하고, 패리티 정보를 저장하기 위해 별도의 드라이브 한 개를 쓴다. 내장된 ECC 정보가 에러를 감지하는데 사용되고, 데이터 복구는 다른 드라이브에 기록된 XOR을 계산하여 수행된다. 입출력을 겹치게 할 수 없어서, 단일 사용자 시스템에 적합하다.
- RAID-4: 대형 스트립을 사용하며, 사용자가 어떤 단일 드라이버로 부터라도 레코드를 읽을 수 있다는 것을 의미하고, 모든 쓰기 작업은 패리티 드라이브를 갱신해야 하므로 입출력의 중첩은 불가능하다.
- RAID-5: 순환식 패리티 어레이를 포함하고, RAID-4에서의 쓰기제한을 주소 지정한다. 그래서 모든 읽기/쓰기 동작은 중첩될 수 있다. 패리티 정보를 저장하지만 데이터를 중복 저장하지는 않는다. 보통 3~5개의 디스크를 어레이로 요구하고, 성능이 중요하지 않고 쓰기 작업이 많지 않은 다중 사용자 시스템에 적합하다.
- RAID-6: RAID-5와 비슷하지만, 다른 드라이브들 간에 분포되어 있는 2차 패리티 구성을 포함함으로써 매우 높은 고장 대비 능력을 제공한다.
- RAID-7: 컨트롤러로서 내장되어 있는 실시간 운영체제를 사용하며, 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 여러 가지 특성을 포함하고 있다.
- RAID-10: 각 스트립은 RAID-1 스트립 어레이를 제공한다. 이 방식은 RAID-1보다 높은 성능을 제공하지만 값이 더 비싸다.
- RAID-53: 각 스트립은 RAID-3 스트립 어레이를 제공한다. 이 방식은 RAID-3보다 높은 성능을 제공하지만 값이 더 비싸다.
레벨 | 방식 | 최대 하드 수 | 디스크 총 용량 예시 (p = 패리티영역) | 설명 |
0 | stripe 하드 연결 | 2개 이상 | 100M + 100M = 200M | 단순 하드연결, 속도가 빠름, 손상시 복구 능력 X |
1 | 미러링 동기화 | 2개 이상 | 100M + 100M =100M | 동기화된 하드 대체 연결, 복구개념의 시초 |
2 | 백업+DATA를 각각 사용 | 2개 이상 | 100M + 100M = 100M | 백업된 내용으로 복구(사용 안함) |
3 | 패리티영역 추가 byte단위 | 3개 이상 | 100M + 100M + 100M = 200M | 오류 기록 하드영역 1개 추가, 한개의 하드 에러시 복구, 패리티 영역 손상 시 복구불가 |
4 | 패리티영역 추가 block단위 | 3개 이상 | 100M + 100M + 100M = 200M | 대형 스트립, 오류 기록 하드영역 1개 추가, 한개의 하드 에러시 복구, 패리티 영역 손상 시 복구불가 |
5 | 각 하드에 분산패리티 할당 | 3개 이상 | 100M + 100M + 100M(p) = 200M | 순환식 패리티, 패리티 영역을 각 하드디스크에 분산시킴, 랜덤한 하드 1개의 손상에 대한 복구 가능 |
6 | 각 하드에 분산패리티 할당 | 4개 이상 | 100M + 100M + 100M(p) + 100M(p) = 200M | 패리티 영역을 각 하드디스크에 분산시킴, 랜덤한 하드 2개의 손상 복구 가능 |
0+1 | stripe된 레이드에 미러링 | |||
1+0 | 미러링된 레이드에 stripe |
!레이드 개념에 대한 모르는 사항이 있으면 http://12bme.tistory.com/286 에서 참고 하시면 될 것 같습니다.
2) SCSI(Small Computer System Interface): 월등한 다중 처리 성능과 빠른 속도 그리고 탁월한 안정성을 보장하여 특수 목적 전문적인 컴퓨터에서 자주 쓰인다.
- SCSI의 특징: 호환성이 뛰어나고, 고성능이며, 확장성이 뛰어나다.
부트 매니저
부트 매니저: 운영체제를 실행하기 위한 프로그램. 하나의 컴퓨터에 두 개 이상의 운영체제를 설치하고 선택하기 위해서도 필요하다.
(리눅스O/S 에선 LILO[Linux Loader]와 GNU GRUB[GRand Unified Bootloader]를 사용)
GRUB의 역할: 멀티 부트로더로, 컴퓨터를 처음 시작할 때 처음으로 실행되는 프로그램이다. 리눅스 등의 운영체제의 커널을 RAM으로 읽어 들여 적재하는 역할을 한다.
-GRUB로 부팅 순서
- 하드 디스크의 첫 번째 부트섹터인 MBR(Master Boot Record)에 저장된다.
- 시스템 전원이 공급되면 가장 먼저 ROM-BIOS에서 시스템 제어권을 가지고 장착된 하드웨어에 대한 기본적인 점검과 인식을 한다.
- ROM-BIOS는 하드디스크의 첫번째 부스섹터의 MBR에 있는 부트 매니저에게 그 제어권을 넘겨준다.
- GRUB는 컴퓨터 시스템의 부팅을 시작하고, GRUB에 의해 부팅될 운영체제가 선택되고 해당 운영체제의 커널이 RAM에 적재되면 커널이 시스템을 운영하게 된다.
GRUB로 운영체제 시작하기
▼시스템 전원을 키고, 일정한 시간이 지나기 전에 키보드를 누르면 다음과 같은 GRUB 초기화면이 나타난다.
이 화면에서 사용자는 e, a, c 키를 선택 할 수 있다.
'e'Key: 시스템 부팅 과정에서 boot.img 이전의 명령들을 수행할 때 누름
'a'Key: 커널 Arguments를 수정할때 누름
'c'Key: 명령행(커맨드라인)을 실행하기 위해 누름
▼아래 그림은 c 키를 누른 뒤 GRUB의 커맨드라인으로 이동한 모습이다. 리눅스 서버가 부팅되지 않을 경우 부팅과정을 변경하거나 편집할 수 있다.
▼GRUB 커맨드라인에서 사용할 수 있는 명령어는 help 을 치면 명령어 목록 들이 나온다.
위에서 말한 수동으로 부팅하는 방법은 다음과 같다.
명령행에 GRUB 설정 파일에 설정한 내용을 적고 부팅에 관한 명령어를 입력하면 된다.
1단계: root 명령어로 부트디스크 및 부트파티션을 지정한다.
2단계: kernel 명령어로 부팅에 사용할 커널을 지정한다.
3단계: boot 명령어로 2단계에서 지정한 커널로 부팅한다.
▼root 명령은 현재 위치를 확인하고 RAM으로 읽어들일 커널이 있는 파티션을 지정할 때 사용한다. 그 이후 kernel과 initrd 명령으로 읽어 들일 커널 및 관련 파일을 지정한다. 이때, 커널이 있는 /boot 디렉토리가 별도의 파티션에 연결되어 있는 경우, 이 파티션을 root로 하고 kernel 명령을 내릴 때 커널이 있는 디렉토리의 경로를 적을 필요가 없기 때문에 boot를 기입할 필요없이 바로 "/커널명"으로 기술하면 된다. 그리고 마지막으로 boot명령으로 이를 부팅 시작한다.
시스템에 문제가 발생하여 싱글유저모드로 부팅하는 방법 - (14년도 후반기)
▼GRUB 초기화면에서 'e키'를 누른다. 이 화면에서 'b키'를 누르면 부팅을 시작하고, 'e키'를 누르면 선택한 명령을 편집 할 수 있다.
▼여기서 kernel에 대고 'e키'를 또 누른다.
▼그러면 다음과 같은 화면이 나오는데, 여기서 'rhgb quite'를 지우고 'single'을 추가 후 [ENTER]를 눌러서 나온다.
▼ 'b키'로 부팅을 시작하면 되는데, 다음과 같이 싱글 유저모드로 부팅이 되면 성공한 것이다.
간략하게 설명 하자면,
1. 부팅하고자 하는 커널 이미지를 선택한다.
2. e키를 이용하여 편집모드로 변경 후 kernel명령어가 포함된 라인을 편집한다.
3. kernel 명령어의 맨 뒤에 single을 추가 기입한다.
4. b키를 눌러서 부팅과정을 시작한다.
GRUB의 설정
GRUB로 멀티부팅을 하기 위한 /boot/grub/grub.conf 설정 파일의 설정
/boot/grub/grub.conf 파일 |
|
목록 |
설명 |
default=0 |
입력값이 0이면 첫번째 운영체제를, 1이면 두번째 운영체제로 부팅한다. |
timeout=5 |
5초 이후에 자동부팅하도록 설정 |
splashimage= (hd0,0)/grub/splash.xpm.gz |
부트로더 메뉴의 배경색 설정 |
title CentOS 6 (2.6.32-642.el6.x86_64) ~ initrd /initramfs....img |
메뉴의 제목 |
GRUB의 복구와 삭제
- 인스톨 CD를 CD-ROM에 넣고 시스템을 재부팅한다.
- 설치 화면이 나왔을 때, 프롬프트상에 다음과 같이 적고 <Enter> 키를 누른다. - Boot: vmlinuz root=/dev/had2
- 리눅스의 root로 로그인을 하여 터미널 또는 텍스트 모드 콘솔의 쉘에서 다음과 같이 명령을 내린다. - /sbin/grub-install /dev/had
- 시스템을 재부팅한다
- 먼저 설치 CD를 넣고 시스템을 부팅한다.
- 그리고 처음 화면에서 프롬프트에 linux rescue라고 기재하고 <Enter>를 누른다.
- 그러면 rescue 모드로 설치 프로그램이 진행된다.
- 언어와 키보드 설정을 하고 난 후에 네트워크 설정을 하게 된다.
- 쉘로 떨어지면 /mnt/sysimage로 이동한다. - cd /mnt/sysimage
- chroot명령으로 /mnt/sysimage 디렉토리를 /로 바꾼다 - chroot .
- grub 설치한다 - /sbin/grub-install /dev/had
- 마지막으로 exit 명령을 내리면 시스템이 재부팅된다.
'자격증 > 리눅스 마스터 1급' 카테고리의 다른 글
Part1) 리눅스의 실무의 이해 - 리눅스 시스템의 이해(3) | X 윈도우, 쉘(Shell) (0) | 2018.01.29 |
---|---|
Part1) 리눅스의 실무의 이해 - 리눅스 시스템의 이해(2) | 디렉터리 구조 및 파일 시스템 이해 (0) | 2018.01.26 |
Part1) 리눅스의 실무의 이해 - 리눅스의 개요(2) | 리눅스 기초 (0) | 2018.01.25 |
Part1) 리눅스의 실무의 이해 - 리눅스의 개요(1) | 운영체제의 개요 (0) | 2018.01.17 |
리눅스마스터 시험 정보 (0) | 2018.01.08 |