2013년 12월 28일 토요일

시스템 reboot 없이 scsi device를 attaching 하기

It is possible to add or remove a SCSI device explicitly, or to re-scan an entire SCSI bus without rebooting a running system. Please see the Online Storage Reconfiguration Guide for a complete overview of this topic on Red Hat Enterprise Linux 5.
For Red Hat Enterprise Linux 5
With fibre attached storage, it is possible to issue a LIP (loop initialization primitive) on the fabric:
echo "1" > /sys/class/fc_host/host#/issue_lip
Issuing a LIP (above) on Red Hat Enterprise Linux 5 is all that is needed to rescan fibre
attached storage. Once the LIP is issued, the bus scan may take a few seconds to complete.
Although present on previous releases, this feature is only fully supported in Red Hat Enterprise Linux 5.
For Red Hat Enterprise Linux 4 and 5
With other SCSI attached storage, a rescan can be issued:
echo "- - -" > /sys/class/scsi_host/host#/scan
Replace the # with the number of the SCSI bus to be rescanned.
In addition to re-scanning the entire bus, a specific device can be added or deleted for some
versions or Red Hat Enterprise Linux as specified below.
For Red Hat Enterprise Linux 4 or 5
To remove a single existing device explicitly
# echo 1 > /sys/block//device/delete
For Red Hat Enterprise Linux 3, 4, or 5
To add a single device explicitly:
# echo "scsi add-single-device " > /proc/scsi/scsi
To remove a device explicitly:
# echo "scsi remove-single-device " > /proc/scsi/scsi
Where are the host, bus, target, and LUN numbers for the device,as reported in /sys (2.6 kernels only) or /proc/scsi/scsi or dmesg.
These numbers are sometimes refered to as "Host", "Channel", "Id", and "Lun" in Linux tool output and documentation.

리눅스 튜닝을 위한 커널 파라메터 수정

물론 운영되는 어플리케이션에 대한 특성과 환경에 고려되어야 하겠지만 일반적으로 금융
Low-latency 환경을 요구하는 시스템의 경우에는  Shared memory 또는  세마포어 
값을 민감하게 건들어야 하는 시스템의 경우는 아래와 같이 사용하기 합니다.

[수정후]
title Red Hat Enterprise Linux Server LL (2.6.32-220.4.2.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-220.4.2.el6.x86_64 ro root=UUID=dd05c407-d62c-40b1-800e-ddff20d33062 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM nohpet intel_idle.max_cstate=0 processor.max_cstate=1 cgroup_disable=memory mce=ignore_ce transparent_hugepage=never nmi_watchdog=1 elevator=deadline idle=mwait nohz=off
        initrd /initramfs-2.6.32-220.4.2.el6.x86_64.img

[수정내용]
기존 kernel 구문에
intel_idle.max_cstate=0 processor.max_cstate=1 cgroup_disable=memory mce=ignore_ce transparent_hugepage=never nmi_watchdog=1 elevator=deadline idle=mwait nohz=off
추가

[각 항목에 대한 설명]
* intel_idle.max_cstate=0 : Processor C-Status 기능 사용한함.
* processor.max_cstate=1 : 프로세서 절전 상태로 진입하지 않게 함.
* cgroup_disable=memory : 자원의 QoS를 제공하는 cgroup기능 사용안함.
* mce=ignore_ce : HW의 corrected error scan으로 인한 latency spike 무시.
* transparent_hugepage=never : hugepage 사용하지 않음
* nmi_watchdog=1 : kdump를 사용설정
* elevator=deadline : cfq가 기본값인 I/O 스케쥴러를 deadline으로 변경
* idle=mwait : CPU idle시 대기처리를 조금만 수행하도록 함
* nohz=off : CPU의 c-status 진입방지

2. 기존 sysctl.conf의 추가 및 변경 사항

#### Kdump 사용 설정
net.ipv4.conf.lo.force_igmp_version = 2
net.ipv4.conf.eth0.force_igmp_version = 2
net.ipv4.conf.eth1.force_igmp_version = 2
net.ipv4.conf.eth4.force_igmp_version = 2
kernel.unknown_nmi_panic = 1
kernel.panic_on_unrecovered_nmi = 1
kernel.panic_on_io_nmi = 1

#### 각 네트워크의 multicast 트래픽에 대한 filtering을 off
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 0
net.ipv4.conf.eth4.rp_filter = 0

#### 10G NIC tuning (SolarFlare에 문의해서 low latency에 적합한 튜닝값을 적용)
net.ipv4.neigh.default.unres_qlen = 100
net.ipv4.neigh.lo.unres_qlen = 100
net.ipv4.neigh.eth0.unres_qlen = 100
net.ipv4.neigh.eth1.unres_qlen = 100
net.ipv4.neigh.eth4.unres_qlen = 100
net.ipv4.tcp_low_latency = 1
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_mem = 16777216 16777216 16777216 
net.ipv4.tcp_rmem = 4096 8388608 16777216 
net.ipv4.tcp_wmem = 4096 8388608 16777216 
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_default = 8388608
net.core.wmem_max = 16777216

### LAN에서의 arp 요청에 대한 응답을 하지 않게 설정하여 network latency를 줄여줌
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth1.arp_ignore = 1
net.ipv4.conf.eth4.arp_ignore = 1

### 세마포어 최적값 수정
kernel.shmmni = 4096
kernel.sem = 2000 32000 512 5029

### swap 사용비율 설정
vm.swappiness = 10

### 스케쥴러 nr 수정
kernel.sched_nr_migrate = 12

net.core.netdev_max_backlog = 20000
net.core.optmem_max = 25165824
#net.core.optmem_max = 20480

3. tuned를 사용한 Low Latency 프로파일 적용
OS를 사용되는 용도에 맞게 사전 tuning된 프로파일을 제공하는 tuned를 이용해서 
레드햇에서 권고하는 시스템 전반적인 tuning을 할 수 있으며 아래와 같이 tuned를 이용해서 적용.

# tuned-adm profile latency-performance

4. 파일시스템 Tuning
[수정내역]
/etc/fstab의 각 마운트 구문중 defaults 뒤에 noatime,nodiratime,nobarrier 옵션 추가

[각 옵션 설명]
* noatime : filesystem meta정보에 file의 access time 기록하지 않음
* nodiratime : filesystem meta정보에 Directory의 access time 기록하지 않음
* nobarrier : fsync기능을 사용하지 않도록 설정.
 
5. 서비스 실행 사용자 계정 File open 수 제한 설정
[수정내역]
/etc/limit.conf 파일에
사용자명              -       nofile          4096
# 서비스 실행 사용자의 File Open 수를 4096으로 증

2013년 12월 20일 금요일

OSI 7 계층의 이란?




국제 표준 기관인 ISO에서 만든 인터넷을 할수 있게 하는 모델이다.
멘 위의 Application layer가 7계층이고 순서별로
7계층  : 응용계층(Application layer)
6계층  : 표현계층(Presentation layer)
5계층  : 세션계층(Session layer)
4계층  : 전송계층(Transport layer)
3계층  : 네트워크계층(Network layer)
2계층  : 데이터 링크계층(Data link layer)
1계층  : 물리계층(physical layer)
라 불린다.

각 계층의 기능을 살펴보자.

1. 물리계층(physical layer) 
 단위는 bit단위를 사용하며, 데이터를 전기신호로 변환시킨다.
이유는 데이터를 전송시 0과 1로만 전송이 가능하기 때문이다.
대표적인 장비로는 케이블, 리피터, 허브가 있으며
리피터는 신호가 줄어들었을 시 신호를 키워주는 증폭기 역할을 하며
허브는 IP와 MAC에 상관없이 들어오는 패킷을 브로드케스트로 단순히 뿌려주는 역할을 한다.

2.  데이터 링크계층(Data link layer)
단위는 Frame단위다.
MAC주소를 통해 통신을 하는 내부 사설망 통신이다.
(이 MAC주소는 렌카드마다 고유의 번호가 있으며, LAN카드 제작 시 만들어진다.
또 IP주소와는 다른 개념이다.)
즉 라우팅 되지 않고 내부 네트워크 망 끼리 통신을 할 떄 사용된다.
물리계층에서 송수신되는 정보의 오류와 흐름을 관리하며, 재전송도 하는 기능이 있다.
대표적 장비는 스위치가 있다.

3. 네트워크계층(Network layer)
단위는 패킷이다.
외부의 네트워크를 IP를 통해 목적지까지 안전하고 빠르게 전달하는 계층이다.
2계층의 MAC주소로 목적지를 찾는거와는  달리 IP를 통해 목적지를 찾으며
내부망 통신이 아닌 라우팅을 통한 외부통신이다.
(여기서 라우팅이란 IP를 가지고 출발지에서 목적지까지의 경로를 찾는 것을 말한다)
즉 경로를 선택하고 경로에 따라 패킷을 전달해주는 것이 3계층의 역할이다.
대표적 장비로 라우터가 존재한다.

4. 전송계층(Transport layer)
단위는 세그먼트다.
프로토콜과 관련된 계층으로, 오류복구와 흐름제어를 담당한다.
두 시스템간의 신뢰성 있는 전송을 보장한다.
이 내용에 대해서는 TCP와 UDP의 자료를 보면 쉽게 이해 할 수 있을 것이다.
TCP의 경우 3 way hand shake 로 연결 지향적인 통신을 하며
데이터 전송 숭 세그먼트 번호가 맞지 않으면 제전송을 하는 등 이런 TCP의 정보를
읽다보면 이해가 갈 것이다.
포트 번호를 통해 어떤 프로세스가 요청했는지 구분을 해주는 곳이기도 하다.
대표적 장비는 L4스위치가 있다.

나머지 5,6,7 계층은 일반적으로 응용 프로세스들이 조절하는 계층이니 간단하게 설명하려 한다.

5. 세션계층(Session layer)
사용자 위주의 논리적인 연결 서비스를 제공한다.
데이터 에러 발생시 복구를 담당하며
연결 종류로는
Full-duplex : 양방향 통신(서로 데이터 주고 받기가 동시에 가능 - 전화기)
half-duplex : 단방향 통신(서로 데이터는 주고 받을수 있으나 동시에는 전송 불가 - 무전기, 일반 통신)
simplex : 전송만 가능한 통신 - 라디오 TV

6.  표현계층(Presentation layer)
암호화와 복호화를 담당
데이터 압축/해제를 담당
(각 응용 프로그램에 따라 암호화 복호화 방식이 다르다 보면 된다.)

7. 응용계층(Application layer)
사용자 인터페이스를 제공한다.
일반적인 응용 프로그램의 서비스를 제공하는 곳이다.

일반적으로 OSI 7 layer는 쉽게 말하면 공부를 하기 위해 만들어 놓은 표준이다.
실제로 우리가 통신을 하기 위해 쓰이는 것은 TCP/IP프로토콜
TCP/IP프로토콜과 연관하여 공부하는 것이 바람직하다.




2013년 12월 19일 목요일

User log와 System log의 종류

User log는 일반적으로 사용자 정보를 가지는 user log 그리고 시스템에서 작동된 명령어나 프로세스 등의 정보를 저장하는 system log로 나뉜다.

User log
log fileDescription
wtmpx, utmpx
wtmp, utmp
사용자의 Account 정보
acct, pacct각 사용자에 의해 실행된 프로세스 관력 기록
lastlog사용자의 마지막 로그인 시간 기록




System log는 시스템에서 명령 등에 의하여 구동된 정보를 모아둔 로그들 이며, 이러한 log는 크게 login 정보, 동작 정보, 인증 정보, Web, FTP 정보 등으로 나뉜다.

System log
log fileDescription
btmpHP-UX 시스템에서 5번 이상의 login 실패에 대한 기록
syslog, secure운영체제 및 응용프로그램의 주요 동작 내역
sulogsu 명령에 의한 결과를 기록
xferlogFTP 전근을 기록
authlogSolaris 시스템 내 인증관련 이벤트 기록
messages각종 메시지들을 기록


find 명령어 option 정리

Unix/Linux에서 가장 많이 사용하는 find 명령어의 option을 정리해본다.

-atime n : n일 전의 access 된 파일
-mtime n : n일 전의 수정된 파일
-newer [file] : file 보다 최근의 수정된 파일
-size n : n * 512바이트의 길이를 갖는 파일
-fstype [filesystem] : 파일 시스템 종류
-name [pattern] : 파일 이름 검색
-perm p : 파일 접근 퍼미션이 p인 경우
-user [user] : 파일 소유권이 user인 파일
-group [group] : 파일 그룹이 group인 파일
-nouser : 파일 소유자가 /etc/passwd에 없는 경우
-nogroup : 파일 소유 그룹이 /etc/group에 없는 경우
-uid n : 파일 uid가 n인 경우
-gid n : 파일 gid가 n인 경우

위의 option외에도 man page를 이용하면 다양하게 많은 여러 option을 확인 할 수 있다.
또한 option을 차례로 기술하여 AND, OR 연산을 적용하여 검색도 가능하다.
OR 연산은 -o option 또는 ( )를 이용하여 그룹을 지어 적용할 수도 있다. 이밖에도 NOT 연산도 가능하며 option 앞에 '!' 부호를 달아 주면 된다.

그외에도 지원되는 내부 옵션들은 아래와 같다.

-print : 대응되는 파일의 경로명을 출력
-ls : 대응되는 파일에 대한 긴 디렉토리 목록을 출력
-exec commands : 대응되는 파일에 대해 commands 명령 수행
-ok commands : 파일에 대한 commands 명령 수행 전에 입력 대기 상태
-xdev : 검색 시작 디렉토리가 속해 있는 파일 시스템에 대해서만 검색 제한
-mount : IRIX와 SCO UNIX에서 -xdev 옵션
-prune : 서브 디렉토리는 검색을 하지 않음
-print option은 근래는 기본으로 들어가기 때문에 굳이 붙일 필요는 없고, -exec와 -ok option은 사용시 마지막에 반드시 \; 구문으로 마감해야 한다.


Example)

1) 검색한 파일을 지움
[ root@alex:/ ] # find ./ -name *.* -exec rm -rf {} \;

2) 파일 크기가 20메가바이트 이상이며 30일 이상 동안 수정되지 않은 파일을 찾음
[ root@alex:/ ] # find / -type f -size +20480 -mtime +30 -ls

3) 모든 setuid, setgid를 검색
[ root@alex:/ ] # find / -type f \( -perm -4000 -o -perm -2000 \)
[ root@alex:/ ] # find / -type f \( -perm -4000 -o -perm -2000 \) | diff - setuidlist

2013년 12월 16일 월요일

시스템 엔지니어의 업무와 직무에 대해서...

시스템 전문가는 IT 인프라에 대한 폭넓은 이해를 요구하기 때문에 다양한 분야에 대한 지식을 제공해야한다. 특히 중요한 것은 고객이나 사용자와 직접 대면하는 직업이기 때문에 커뮤니케이션 능력이 필수적으로 요구된다는 것이다. 이처럼 고객이나 사용자의 요구를 수용하고 새로운 능력을 지속적으로 개발해 내는 것이 시스템 전문가가 나아갈 방향일 것이다.


기업에서 IT 인프라가 차지하는 비중이 높아지면서 이를 관리하는 시스템 관리자의 역할이 크게 부각되고 있다. 서버 관리자라고도 불리는 시스템 관리자는 사전적인 의미로 ‘다중 사용자의 컴퓨터 시스템과 통신 시스템의 사용에 대한 관리 책임을 지는 사람’을 말한다.

시스템 관리자는 사용자 계정과 암호의 할당, 보안 접근 수준 설정, 디스크 공간 할당 등의 업무를 수행하는 것을 주요 업무로 하고 있다. 하지만 일반적으로는 시스템의 운영에 관련된 거의 모든 작업을 담당하고 있는 것이 현실이다. 특히 전산실의 규모가 작은 중소기업의 경우는 한 사람의 관리자가 서버나 사용자 관리뿐 아니라 스토리지, 보안, 네트워크 등 전반적인 IT 인프라를 모두 관리하는 경우도 많다. 하지만 대기업의 경우는 이와 반대로 자동화된 관리 툴이나 아웃소싱 등을 통해 관리 인력을 줄여 나가려하고 있으며, 한편으로는 네트워크, 서버, 보안, 스토리지 등 관리 인력을 세분화하는 경향이 있다.

 
시스템 관리자에게는 다양한 능력이 요구된다


시스템 관리자의 주요 업무는 서버와 클라이언트의 안정적인 운영을 위한 모든 것이라고 할 정도로 광범위하기 때문에 이를 위해 사전에 익혀야 할 지식도 상당히 넓고 많은 편이다. 시스템 관리자가 되기 위한 가장 잘 알려진 교육 인증 과정인 마이크로소프트의 MSCE는 클라이언트 운영체제, 네트워크 시스템, 서버 운영체제, 데이터베이스, 메일 서버, 웹 서버 등으로 구성돼 있다. HP의 ASE도 이와 비슷해 운영체제, 네트워킹, 데이터베이스, 스토리지, 메일 서버 등으로 구성돼 있다.

실제 업무에서도 이같은 교육 과정은 거의 그대로 통용된다. 하지만 교육 과정에서 배운 내용을 바로 실제 업무에 적용하는 것은 힘들다는 것이 중론이다. 이에 따라 대부분의 시스템 관리자들은 각종 자격증을 취득한 후에도 실제 업무에서는 별도의 교육이나 연수를 통해 재교육을 받고 현업에 투입된다.


이것은 MCSE나 ASE, 혹은 솔라리스나 HP-UX 과정 등의 다양한 과정을 통해 배운 과정은 단순히 하나의 운영체제에 대한 내용에 불과할 뿐이지만, 실제 전산실은 하나의 운영체제만으로만 구성되는 경우가 거의 없으며, 리눅스와 윈도우, 유닉스 등이 혼재돼 있기 때문이다. 더구나 여기에 네트워킹이나 스토리지, 백업, 클라이언트 PC들까지 모두 파악하고 관리할 능력은 단순히 몇몇 교육 과정을 거친다고 얻을 수 있는 것은 아니다.


이처럼 시스템 관리자는 시스템에 대해서는 깊게, 그리고 연관 분야에 대해서는 폭넓은 이해가 필요하다. 시스템 관리자의 가장 기본적인 업무는 사용자 관리와 애플리케이션 설치, 패치 관리 등에 불과하다고 생각하기 쉽지만, 설치된 애플리케이션이나 데이터베이스에 대한 성능 튜닝에서부터 각종 백업, 복구 작업까지 해야 함은 물론이고, 최근에는 웹 서버가 늘어남에 따라 아파치나 IIS 등의 웹 서버 관련 업무까지도 도맡아 하게 된다.

일선 시스템 관리자들은 이외에도 영어로 된 매뉴얼이나 관련 문서를 읽고 파악하기 위해서는 평균 이상의 영어 실력을 갖추고 있어야 하며, 간혹 직접 해외 업체의 본사와의 연락을 위해서도 영어가 필요하다고 말한다. 


체계적인 시스템엔지니어 교육을 받고 싶다면 IT전문가 공인교육기관에서 교육을 전문적으로 받을 필요가 있다.


다음은 시스템 관리자가 갖춰야 할 능력을 정리한 것이다.

· 네트워킹 능력

일반적으로 많이 사용되는 TCP/IP 관련 서비스와 애플리케이션에 대한 이해가 필요하며, 만약 모르는 문제에 부딪혔을 때는 어디서 해결책을 얻을 수 있는지 알고 있어야 한다. 또한 별도의 네트워크 관리자가 없는 중소기업의 전산 담당자라면 라우터나 스위치 등의 네트워크 장비들까지도 직접 관리해야 하기 때문이다.

· 운영체제

가능한 다양한 운영체제에 대해 알고 있어야 한다. 윈도우와 리눅스, 유닉스는 기본이며, 각각의 리눅스와 유닉스의 차이점에 대해서도 일정 수준 이상의 지식을 쌓고 있어야 한다. 이것은 현업에서 어떤 운영체제를 다뤄야할지 알 수 없기 때문이기도 하지만, 새로운 애플리케이션을 위한 시스템을 도입할 때 최적의 시스템을 구성하기 위해서는 각 운영체제의 특징과 장단점을 파악하고 있어야만 한다. 관리자로서는 가장 중요한 능력 중 하나다.

· 백업과 리스토어

백업은 관리자가 가장 지루해하는 작업이지만, 또한 중요한 작업이다. 다양한 백업 장비와 미디어의 특성, 백업과 리스토어 방식, 백업 툴의 사용법, 데이터베이스의 온라인 백업 등 백업 전반에 걸친 업무를 파악하고 있어야 한다.

· 하드웨어
서버와 PC의 각종 하드웨어의 고장 대처 방법과 최신 기술에 대해 파악하고 있어야 한다.

· 스크립트 작성 능력
유닉스 관리자라면 반드시 스크립트 작성 능력을 갖춰야 한다. 이를 통해 수시로 반복되는 작업을 스크립트로 자동화해 업무의 효율을 높일 수 있다.

· 보안

각각의 운영체제와 애플리케이션의 취약점에 대해 알고 취약점 패치 등의 작업을 수행할 수 있어야 하며,파이어월이나 VPN 등의 보안 장비에 대한 지식을 갖추고 있어야 한다.

· 문서 작성 능력

특별히 뛰어날 필요는 없지만, 보고용으로 뿐만 아니라 관리의 편의를 위해서도 작업의 문서화는 반드시 필요하다. 특히 담당자 변경시에는 이같은 문서화가 안 돼 있다면 무척 난감해 질 수밖에 없다.

· 커뮤니케이션 능력

시스템 관리자는 애플리케이션 개발자, 시스템 엔지니어나 컨설턴트뿐 아니라 일반 사용자들과는 수없이 많은 커뮤니케이션을 하고 업무를 조율해야 한다. 원활한 업무진행을 위해서는 커뮤니케이션 능력이 반드시 필요하다.


비즈니스 감각이 필요한 시스템 엔지니어


시스템 엔지니어의 경우는 대부분 SI 업체나 서버 업체에서 설치와 유지보수 지원 업무를 맡는 것이 일반적이며, 최근에는 IDC나 호스팅 업체, 서비스 아웃소싱 업체에서 각종 관리 용역을 제공하고 있다.


SI 업체나 서버 업체의 시스템 엔지니어는 자신이 취급하는 하드웨어 장비에 대해 깊은 부분까지 이해를 하고 있어야 하며, 이외에도 연관된 다양한 장비에 대한 지식이 필요하다. 뿐만 아니라 고객의 요구에 따른 시스템 디자인 능력과 이를 설치, 유지보수하기 위해 시스템에 대한 심도 깊은 이해가 필요하다.



시스템 엔지니어들은 이외에도 고객과의 커뮤니케이션 능력과 비즈니스적인 감각까지 요구되는 경우가 많다. 특히 SI 업체에서는 영업팀과의 협력해 직접 고객과 접하는 기회가 많기 때문에 영업 능력을 필요로 하기도 한다. 한편 고객에게 보고서를 제출하거나 프리젠테이션을 해야할 경우가 많기 때문에 워드나 파워포인트, 프리젠테이션 능력 등도 큰 비중을 차지한다.


IDC나 호스팅 업체, 서비스 아웃소싱 업체의 시스템 엔지니어는 시스템 엔지니어로서의 능력과 함께 관리자로서의 능력도 함께 요구하고 있다.


또 다른 분야의 시스템 엔지니어로는 개발자 지원을 담당하는 경우도 있다. 솔루션 개발시에 개발 환경의 구축과 최적화, 유지보수 업무를 담당하는 경우가 있지만, 이것은 그리 수요도 많지 않으며 프로젝트성으로 단기간에 끝나는 경우가 많다.


최근에는 시스템 엔지니어에서 스토리지 엔지니어 등으로 세분화되는 추세를 보이고 있다. 스토리지 엔지니어는 SAN이나 NAS 등 스토리지 네트워크 장비에 특화된 기술력을 보유하고 이를 설치, 유지보수하는 작업을 수행한다.

세분화된 전문 분야 담당하는 컨설턴트


SI 업체나 하드웨어 장비업체들이 서비스 비즈니스를 강화하면서 컨설팅 인력이 급부상하고 있다. 하지만 컨설팅 인력은 짧은 기간에 빠르게 양성할 수 없어 현재 인력 수급이 쉽지 않은 분야다. 시스템 컨설턴트는 시스템 엔지니어보다 더욱 세분화된 전문 분야를 담당한다.


하지만 시스템 컨설턴트는 시스템 엔지니어보다 전문 분야에 대한 더욱 세부적인 기술을 습득하고 있어야 함은 물론이고, 관련 기술 전반에 대한 폭넓은 이해를 바탕으로 고객에서 최선의 제안을 제시해야 한다.


시스템 컨설턴트는 현재 시스템에 대한 분석 리포트 제공에서부터, 아키텍처 디자인, 기술적인 최적화나 문제 해결, 트러블 슈팅 가이드 등의 업무를 주로 수행한다. 이를 위해 기술적인 부분에 대한 전문가가 되어야 함은 물론이고 비즈니스 감각이 필요하며, IT 인프라를 구성하는 각각의 분야에 대한 IT 기술 동향에 대한 빠른 이해가 필요하다. 또한 프로젝트 관리 능력, 리포트 작성을 위한 문서화 능력 등이 많이 요구된다.


이외에도 인터뷰를 통해 업무를 파악하고 이에 맞는 제안을 제시해야 하기 때문에 많은 인터뷰가 필요하며, 이를 위한 커뮤니케이션 능력도 필수적으로 요구하고 있다.


업계에서는 이처럼 보다 심화된 전문 기술을 제공하면서도 다른 분야에 대한 폭넓은 이해, 비즈니스 감각까지 갖춘 컨설턴트를 양성하기 위해서는 최소한 3년 정도의 시간이 필요할 정도라고 한다.

2013년 12월 15일 일요일

크롬박스(Chromebox) 가지고 놀기


올해 4월 미국 샌프란시스코에서 거중에 있을때 우연히 저렴하게 구매하게된 Google Chromebox를 다시 꺼내서 Ubuntu linux 12.04 LTS를 설치하고 bash shell과 perl script를 다시 공부하기 시작했다. Mac mini를 copy 한듯 한 디자인이라 그런지 깔끔하고 군더더기 없이 마음에 든다.

조만간 H/W 분해사진과 Ubuntu Linux installing에 대하여 포스팅을 해야겠다. 마지막으로 사진에 laptop과도 같이 생긴 것은 Motorola의 lapdock 이올 시다.
본래 Atrix의 webtop을 위한 device이나 desktop pc 또는 laptop의 extension monitor의 용도로 활용이 가능하다.

Chromebox의 활용용도는 무궁무진하다. Xbox를 설치하여 HTC로 사용할 수 있으며, Web/FTP/Samba Server를 설치하여 Personal Server로도 사용이 가능하다. 또한, nTOP, Cacti을 설치하면 Monitoring 장비로도 활용을 할 수도 있다.

이렇게 다양하게 활용이 가능한 큰 이유는 아무래도 Chromebox의 ChromeOS가 Linux base이기 때문이 아닐까?


CentOS에서 Chrome browser 사용하기.

Goole Chrome browser는 version 28 이후 버전부터는 더 이상 CentOS를 지원하지 않습니다.
yum으로 설치를 하려고 하면 아래와 같은 error message를 보실 수 있습니다.

Error: Package: google-chrome-stable-29.0.1547.57-217859.x86_64 (google-chrome)
           Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)


이는 CentOS 6.4에서는 GLIBCXX 3.4.13 버전까지만 설치가 되어 있기 때문입니다.

Goodle Chrome browser는 두가지의 배포버전이 있으며, 구글에서 공식 지원하는 "Chrome"과 Opensource형태로 지원하고 있는 "Chromium"이 있습니다.

무슨영문인지 Google에서 Chrome을 Debian/Ubuntu/Fedora/openSUSE를 제외한 RedhatRedhat ClonCentOS는 더 이상 공식적으로 지원을 하지 않고 있으므로 우리는 pensource인 "Chromium"을 설치해보도록 하겠습니다.

1. 우리는 install/update가 편리한 yum을 이용하여 install을 할 것이기 때문에 chromium repository를 download 합니다.

[root@boneginner ~] # cd /etc/yum.repos.d


2. 그리고 나서 yum을 이용해서 chromium 설치합니다.

[root@bonegineer ~] # yum install chromium


3. Chromium에서 Adobe Flash Player가 기본적으로 동작을 하지 않습니다. 이는 flash plug-in module이 기본내장되어 있지 않아서 그렇습니다. 당황하지 마시고 아래의 내용대로 script를 받아서 실행시켜 주면 flash가 동작합니다.

[root@bonegineer ~] # wget https://raw.github.com/hughesjr/chromium_el_builder/master/chrome_pepperflash_copy.sh
[root@bonegineer ~] # chmod 755 chrome_pepperflash_copy.sh
[root@bonegineer ~] # ./chrome_pepperflash_copy.sh

4. 만약 PDF viewr가 필요하시면 그리고 Chrome PDF Viewer 역시 아래의 내용대로 script를 받아서 실행하시면 됩니다.

[root@bonegineer ~] # wget https://raw.github.com/hughesjr/chromium_el_builder/master/chrome_libpdf_copy.sh
[root@bonegineer ~] # chmod 755 chrome_libpdf_copy.sh
[root@bonegineer ~] # ./chrome_libpdf_copy.sh