시스템/LinuxSystem2010. 9. 8. 14:58

난이도 : 중급

M. Tim Jones, 컨설턴트 엔지니어, Emulex Corp.

옮긴이 : 박재호 이해영 dwkorea@kr.ibm.com

원문 게재일 : 2008 년 6 월 04 일
번역 게재일 : 2008 년 12 월 23 일

최근에 저널링 파일 시스템이 신비의 대상으로 여겨져 연구 주제로 떠오르고 있습니다. 하지만 오늘날 저널링 파일 시스템(ext3)은 리눅스(Linux®)에 기본으로 탑재되어 있습니다. 저널링 파일 시스템 이면에 숨겨진 아이디어를 찾아 시스템 전원 문제나 비정상 종료 과정에서 더 나은 무결성을 제공하는 방법을 익힙시다. 현재 사용 중인 다양한 저널링 파일 시스템을 익히고 차세대 저널링 파일 시스템도 미리 살펴봅시다.

저널링 파일 시스템을 다양한 방식으로 정의할 수 있지만 요점만 간략하게 정리해보자. 저널링 파일 시스템은 부트 시점에서 파일 시스템 일관성 검사를 위해 fsck가 돌아가는 모습에 진절머리가 난 사람을 위한 고안물이다(저널링 파일 시스템은 결함에 회복력을 보이는 파일 시스템이라는 아이디어에서 나왔다). 저널링 기능이 없는 전통적인 파일 시스템을 부적절하게 종료하면, 운영체제가 이를 감지해 fsck 유틸리티를 사용해 일관성 검사를 수행한다. 이 유틸리티는 파일 시스템을 탐색해(상당히 오랜 시간이 걸릴 수도 있다) 안전하게 교정할 수 있는 문제점을 수정한다. 어떤 경우에는 파일 시스템이 심하게 망가졌기에, 운영체제가 알아서 단일 사용자 모드로 진입한 다음에 사용자가 복구 과정을 진행하도록 만드는 경우도 있다.

fsck 뒷담화

엎친 데 덮친 격으로 fsck 과정은 파일 시스템 메타자료가 올바른지 확인하기 위해 운영체제가 마운트 시점에서 자동으로 수행한다(심지어 손상이 감지되지 않을지라도). 따라서 파일 시스템 항상성 점검을 건너뛰도록 만드는 기술은 개선의 여지가 많다.

이제 저널링 파일 시스템이 누구를 위해 만들어졌는지 알았다. 그렇다면 fsck를 어떻게 없애버릴까? 일반적으로 저널링 파일 시스템은 저널을 관리하는 방법으로 파일 시스템 손상을 피한다. 저널은 특수한 파일로서 파일 시스템에 반영될 변경 사항을 원형 버퍼에 로그로 남긴다. 주기적으로, 저널은 파일 시스템에 커밋된다. 비정상 종료가 일어나면, 저널은 저장되지 않은 정보를 복구하기 위한 검사 지점으로 사용되며, 파일 시스템 메타자료 손상을 막아준다.

Posted by @dmin @dmin

댓글을 달아 주세요

시스템/LinuxSystem2010. 9. 7. 17:46

 리▒~O▒▒~L~E ▒~L~@▒~C~A ▒~K~\▒~D

:se enc=utf-8

 리포팅 대상 시간

 

Posted by @dmin @dmin

댓글을 달아 주세요

시스템/LinuxSystem2010. 8. 31. 17:35
시스템 구현


LVS Load Balancing method
 NAT 이용한 가상서버
 IP 터널링 이용한 가상서버
 다이렉트 라우팅 이용한 가상서버


LVS Direct Routing
 사용자의 요청은 가상 IP 주소를 가진 부하분산서버로 간다
 부하분산서버는 스케줄링 알고리즘에 따라 클러스터에서 실제 서버를 선택
 접속을 기록하는 해시 테이블에 새로운 접속을 추가
 부하분산서버에서 선택한 서버로 직접 패킷을 전송
 리얼서버는 요청을 처리하고 결과를 사용자에게 직접 전송


스케줄링 알고리즘
 Round-Robin Scheduling
 Weighted Round-Robin Scheduling
 Least-Connection Scheduling
 Weighted least-Connection Scheduling

 
Technology
1. heartbeat
2. Ldirectord
3. ipvsadm

 
1. Heeartbeat
-  heartbeat 프로토콜을 이용하는 오픈 소스 프로젝트
-  정해진 시간간격을 두고 특정한 패킷을 물리적으로 연결된 호스트에 보내 일정시간 응답이 없으면 정해진 응급 복 구 프로세스를 수행

- Master 호스트가 서비스를 책임
- Master 호스트에 문제발생시 Hot standby 호스트가 가상 IP를 인계받아 서비스 재계


2. Ldirectord
 리얼서버의 상태를 모니터링 하는 PERL 스크립트
 설정파일에 정해진 URL에 주기적으로 특정문자열 요구
 타임아웃, 응답된 문자열 유효성 등으로 서버상태 결정
 리얼서버의 다운시 IPVS 테이블에서 삭제
 리얼서버 복구시 IPVS 테이블에 재 등록
 라이렉트 라우팅은 Linux Director서버의 IPVS 테이블을 이용해 커널에서 처리
 모든 리얼 서버가 다운 되었을 경우 fall-back 서버가 응답


3. ipvsadm
 2개 이상의 노드를 가진 클러스터링 시스템에서 커널내부의 IPVS 테이블을 설정하고 유지하는 유틸리티
 IPVS테이블은 커널이 로드밸런서로 들어오는 패킷을 각각의 리얼서버 노드로 전달하기 위해 참조
 2개의 프로토콜 지원(TCP, UDP)
 3가지 방식의 패킷 포워딩 방식 지원(NAT, Tunneling, Direct routing)
 4가지 스케줄 알고리즘 지원

 
구축
Network 설정(공통)
/etc/hosts
X.X.X.100 www.dunet.co.kr www virtual ip (VIP)
X.X.X.101 ha1.dunet.co.kr ha1 master
X.X.X.102 ha2.dunet.co.kr ha2 standby
X.X.X.103 node1.dunet.co.kr node1 real server1
X.X.X.104 node2.dunet.co.kr node2 real server2

 
real server 서버들은 VIP를 로컬주소로 인식하도록 설정 되어야 함
- loopback device 에 IP alias 기능을 이용
- /etc/sysconfig/network-scripts/ifcfg-lo:0 스크립트를 다음과 같이 설정
DEVICE=lo:0
IPADDR=X.X.X.100
NETMASK=255.255.255.255
NETWORK=X.X.X.X
BROADCAST=X.X.X.X
ONBOOT=yes
NAME=loopback

 
GATEWAY혼돈을 막기 위해 /etc/sysconfig/network 파일에 아래 항목 추가
GATEWAYDEV=eth0

 
각 real server에서 /etc/ha.d/conf/ldirectord.cf에 포함
Test Page of node1.dunet.co.kr
Test Page of node2.dunet.co.kr

ARP 응답문제
loopback devices에서 Alias된 VIP가 추가된 경우 로컬네트워크의 ARP 요청이 로드밸런서로 가지 않고 리얼 서버가 먼저 응답하므로 부하분산이 되지 않는 문제가 생길 수 있다.


커널 2.2.14 – Hidden Device 기능을 이용
커널 2.4.X  - Hidden patch 필요
커널 2.6.X  - /etc/sysctl.conf 파일에 수정 후 활성화

# ARP hidden configure
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

활성화
# sysctl -p

TIP) 확인법으론 windows나 linux에서 arp -a 명령을 실행. 로드밸런서 서버 맥어드레스가 나오면 정상적으로 셋팅이 된 것이다.

 
Linux Director Server 설정
- kernel 2.4 이상에서는 IPVS기능 사용가능
- Director서버는 반드시 자신에게 접속하는 클라이언트 패킷을 real server로 보낼 수 있는 IPforward기능이 필요


#/etc/sysctl.conf
net.ipv.ip_forward = 1 로 변경 후 저장
#sysctl -p활성화

실행을 위해 /etc/ha.d/conf/ldirectord.cf에 설정파일 필요

/etc/ha.d/conf/ldirectord.cf
checktimeout=3 
checkinterval=1                    # 테스트페이지 요청 주기
fallback=127.0.0.1:80gate         # 모든 리얼서버 다운시 이동할 웹 서버
autoreload=yes 
logfile=”/var/log/ldirectord.log” 
quiescent=yes 
virtual=X.X.X.100:80                # 리얼서버 IP및 포트, 포워딩 방식
   real=X.X.X.103:80 gate 3          - gate = Direct Routing
real=X.X.X.104:80 gate 2             - masq = Network address translation
service=http                           - ipip = IP Tunneling
  checkport=80 
  checktype=connect 
  request=”index.html” 
  receive=”Test Page” 
  scheduler=wlc                    # 스케줄링 방식
  #persistent=600                    - rr, wrr, lc, wlc

- Real Server 동일 사양에서 똑같게 구성
- Director Server 동일하게 구성

 
LVS 각 서버들 httpd 실행
# /etc/rc.d/init.d/ldirectord start
- 부팅 시 자동 실행되지 않게 설정!!!


ipvsadm을 통해 테이블 확인
# ipvsadm - L

장애 로그로 결과를 분석

[출처] http://uzoogom.blog.me/130019384695

Posted by @dmin @dmin

댓글을 달아 주세요

시스템/LinuxSystem2010. 8. 31. 15:31

# dmesg
 - 부팅시에 하드웨어적인 에러 파악
 - 시스템의 부팅과정에서 출력된 메세지
   (하드웨어나 시스템 체크)

# cat /var/log/messgaes
 - 운영중에 장애난 사항 파악
 - 시스템의 작동 메세지나 데몬들의 에러로그

[example]
# dmesg | grep error   (or fail*  or down등)
# cat /var/log/messages | grep error*       (or reboot  or down등)

[출처] http://pilot1002.blog.me/40058114739

Posted by @dmin @dmin

댓글을 달아 주세요

시스템/LinuxSystem2010. 7. 5. 11:48
RPM다운
http://ftp.daum.net/centos/4/os/i386/CentOS/RPMS/

RPM검색
http://rpm.pbone.net/

FTP서버 모음
http://data.nicehosting.co.kr/

http://centos.mirror.cdnetworks.com/

ftp://ftp.sayclub.co.kr/pub/

http://ftp.linux.co.kr/
Posted by @dmin @dmin

댓글을 달아 주세요