Smartctl / S.M.A.R.T / 디스크 검사 / 디스크 상태 / disk health check

→ 정확한 명칭은 S.M.A.R.T(Self-Monitoring, Analysis and Reporting Technology) 기능 

→ 디스크 검사라고도 하며, smart 검사, smartctl 이라고 부릅니다.

 

  1. Why? / 시스템 엔지니어라면 왜 알아야 하는지
  • 물리적인 서버에 마운트된 하드 디스크의 상태를 사전에 감지하여 데이터 손실의 위험을 예방하는 도구. 기본적으로 하드 디스크의 전반적인 상태를 확인 합니다.
  • smartctl 명령어는 하드디스크의 (ROM..??) 기록되는 것으로 보이며 I/O에서 발생하는 error때문에 write가 잠겨 read only 경우일경우, /var/log/messages 상에 찍히지 않는 I/O error를 검출할수 있습니다.

→ Linux 같은 경우에는 syslog에 I/O error 가 뜨기전에 smartctl 베드 섹터 수치가 있는 편이 많습니다.

 

  • 다운이 발생한 서버의 경우 /var/log/messages 로그를 확인하여 하드디스크 장애가 있다고 판단될 경우, 디스크 교체 여부 판단에 큰 도움이 됩니다.
  • 디스크 및 RAID의 상태를 확인하기전에 다양한 정보를 확인가능 하며, 하드디스크를 서버에서 분리하지 않고도 하드디스크에 대한 정보 파악 가능 합니다.
  • 한가지 예를 들어서 아래와 같은 경우
    smartctl 의 수치가 지속적으로 올라감 →
    I/O error 출력 →
    Raid controller error →
    장애 발생 →
    Raid 구성에 따라서 데이터 손상이 복구가 안되는 이슈가 생길 수 있습니다.

하지만, 디스크 검사를 분기별, 주기적으로 디스크 검사를 통하여 데이터의 보존을 하게 되면 데이터 복구에 대한 비용이나, 데이터 손실의 위험을 줄일 수 있습니다.

 

(*) 명**기술 (데이터 복구 업체) 에 한번 문의를 하였는데, 특히 가상화 (VM) 의 데이터 손상은 복구가 제로에 가깝다고 판단 됩니다.

  • IDC 에서 물리적으로 하드 디스크의 램프에 불이 들어 왔을 경우에도 디스크 검사 시 수치가 있는 경우가 열의 아홉은 있다고 보여집니다.
  • 디스크의 발송이 왔을때 디스크 검사를 하여 문제가 없는지 확인을 하고, A/S 수리 기간 전에 베드섹터 (정확하게는 각 ID 값의 수치)가 있을 경우에는 바로 교체를 한다면, 이후에 생길지도 모르는 서버 관리 비용을 줄일 수 있습니다.





  1. Linux-server 사용법 (physical-server)

2-1) 설치 

$ yum install smartmontools

 

2-2) 옵션

-a [파티션 이름] : (ex : smartctl -a /dev/sda)

→ 전체 속성 확인

 

-i [파티션 이름] : (ex : smartctl -i /dev/sda)

→ 정보 확인 (모델명 등)

 

-H [파티션 이름] : (ex : smartctl -H /dev/sda) 

→ 하드디스크 자가진단 결과 조회

 

  1. Windows 사용 방법

 

3-1) smartctl 사용 (설치 방법은 따로 기재 하지 않았습니다.)

 

smartctl 











3-2) crystal Diskinfo

 

crystal Diskinfo

 

디스크 검사 smart 기능으로 결과 값을 출력해 주기 때문에 어떤 tool 을 쓰더라도 결과 값은 동일 합니다. (가동 시간 7573이 똑같은 것을 볼 수 있습니다.)

 

  1. 각 ID 값의 수치 읽는 방법

4-1) 200 가지가 넘는 수치를 전부다 외우진 않고 제가 중요하게 보는 속성 입니다.

default 로 0 입니다.

 

ID# ATTRIBUTE_NAME

  5 Reallocated_Sector_Ct

  9 Power_On_Hours

 10 Spin_Retry_Count

196 Reallocated_Event_Count

197 Current_Pending_Sector

198 Offline_Uncorrectable

199 UDMA_CRC_Error_Count

 

4-2) 기타 사항으로 하드디스크 온도나 하드디스크 on/off 횟수 등 다양한 속성이 있으니 아래 wikipedia 사전을 한번은 보는 것을 권장 드립니다.

https://ko.wikipedia.org/wiki/S.M.A.R.T.




  1. Raid Controller

 

5-1) Raid Controller  에서 정상적으로 사용하려면 raid controller 설치를 하고 검사를 진행해야 디스크의 정확한 개수를 알수가 있어 controller 설치는 해줘야 합니다.

megaraid, 3ware, adaptec 컨트롤러가 주로 사용되며 각 벤더사 별로 설치 방법, 사용 방법이 상이 하므로 설치 방법에 대해서는 생략하도록 하겠습니다. 



  1. RAID controller 에 따른 사용법

 

    LSI 3ware SATA RAID controller : -d 3ware,N /dev/twX

 

    Areca SATA[/SAS] RAID controller : -d areca,N[/E] /dev/sgX

 

    HighPoint RocketRAID SATA RAID controller : -d hpt,L/M/N /dev/sdX

 

    CCISS (HP/Compaq Smart Array controller : -d cciss,N /dev/cciss/cXd0

 

    LSI MegaRAID SAS RAID controller : -d megaraid,N /dev/sdX

    Dell PERC 5/i,6/i controller : -d megaraid,N /dev/sdX

 

    Intel ICHxR RAID : /dev/sdX

 

    Adaptec SAS RAID controller : -d aacraid,H,L,ID /dev/sdx 



  1. 지원 범위
  • 맨 앞부분에 위치할 내용이긴 하나, 뒷 부분에 적겠습니다.
  • smart 상태는 BIOS 에서 지원이 되어야하며, Disk 또한 지원이 되어야 사용 할 수 있습니다. 

 

  • 또한 앞 부분에 적은 것 처럼 디스크 검사라고 표기하긴 하였으나, 위의 내용들은 전부다 디스크 상태를 출력해줄 뿐 tool 에 나오는 검사 방법은 100% 신뢰를 하시면 안됩니다. (crystal diskinfo)

→ 왜냐하면 서버의 중요도, raid 구성도, 비용, 백업의 유무, 디스크 구매 시기등 다양한 변수가 적용 되어야 하기 때문 입니다. 

 

시스템 엔지니어라면 각종 변수까지 고려하여 디스크 상태를 매우 양호, 양호, 보통, 주의, 경고, 폐기 등으로 볼줄 알아야 될것으로 판단 됩니다. Linux, Windows 가릴 것 없이 말입니다.

 



Raid Controller 가 있을 때 Smartctl 사용 하는 방법

Adaptec 6805 raid controller smartctl

 

00 슬롯의 디스크

 

 

01 슬롯의 디스크

 

02 슬롯의 디스크

 

03 슬롯의 디스크

 

위 와 같이, Serial Number 가 각 디스크마다 다른것을 확인 할 수 있으며, 디스크 상태를 확인 할 수 있습니다.

@@ NFS install / NFS 설치

OS 환경

Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016

 

#### nfs-server install ####

## nfs install // nfs-server install

$ yum install nfs*

 

## confirm

$ rpm -qa nfs*

nfs-utils-1.2.3-78.el6_10.2.x86_64

nfs-utils-lib-devel-1.1.5-13.el6.x86_64

nfs-utils-lib-1.1.5-13.el6.x86_64

 

## nfs-client 허용 설정

$ vi /etc/exports

/nfs/data/  192.168.137.42(rw,sync,no_root_squash) 192.168.137.43(ro)

/nfs/data/   192.168.0.*(rw,sync)

 

## exportfs Reference

ro (읽기 전용)

root_squash (클라이언트의 root를 서버의 nobody 권한으로 설정)

no_root_squash (클라이언트의 root를 서버의 root 권한으로 설정)

all_squash (root를 제외한 일반사용자의 ID를 nobody 권한으로 설정)

no_all_squash (root를 제외한 일반사용자의 ID를 서버의 사용자ID 권한으로 설정)

insecure  (인증되지 않은 엑세스도 가능)

sync (클라이언트가 파일쓰기 완료후 디스크 동기화)

 

## 적용 & 확인

$ exportfs -a

$ exportfs

 

## rpcbind 설치

$ yum install rpcbind

$ rpm -qa | grep -i rpcbind

rpcbind-0.2.0-16.el6.x86_64

## 오래된 kernel 버전7은 portmap 설치 ## yum install portmap

 

시작 순서 중요

$ /etc/init.d/rpcbind start

$ /etc/init.d/nfs start

 

$ netstat -nlpt | grep -i rpcbind

tcp    0 0.0.0.0:111             0.0.0.0:*               LISTEN  1404/rpcbind

tcp    0 :::111                  :::*                    LISTEN  1404/rpcbind



## nfs-client

$ yum install nfs*

 

## 연결할 수 있는 지 확인

$ showmount -e 192.168.137.41

$ mount -t nfs 192.168.137.41:/nfs/data/ /nfs/data/

 

## reference

$ showmount -e 192.168.137.41

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

→ 방화벽 확인 해볼 것 / nfs port 고정 방법 찾아보기 

 

$ showmount -e 192.168.137.41

Export list for 192.168.137.41:

/nfs/data 192.168.137.43,192.168.137.42

→ 정상

 

$ mount -t nfs 192.168.137.41:/nfs/data/ /nfs/data/ 

$ mount -t nfs -o nolock 192.168.137.41:/nfs/data/ /nfs/data/

## ​-o nolock : 2개 이상의 클라이언트에서 동일한 파일의 엑세스할때, 잠금설정을 해제



$ vi /etc/fstab

192.168.137.41:/nfs/data/ /nfs/data/ nfs defaults 0.0 

## nfs계속 연결시도

 

192.168.137.41:/nfs/data/ /nfs/data/ nfs timeo=25,intr 0.0

## 25초 동안만 시도하고 없을경우 시도를 멈춤

 

## /etc/fstab /  NFS 마운트 옵션

rsize : NFS서버로부터 읽어 들이는 바이트수 지정 기본값 1024byte

wsize : NFS서버에 기록할 때 사용하는 바이트수 기본 지정값 1024byte

timeo : 클라이언트에서 타임아웃이 발생되고 나서, 다시 재전송 요구를 보낼때 시간

retrans : 재전송 횟수 지정

port : NFS서버에 연결시 사용하는 포트번호 지정

fg : NFS서버에 타임아웃이 발생되면 즉각 접속 중지

intr : 인터럽트 허용

hard : 타임아웃 발생시 "server not recording" 에러메시지 표시후 계속 재시도

soft : 타임아웃 발생시 I/O 에러 표시

 

확인

$ df -h 등 테스트 진행

두 서버가 공유된 모습









## URL

## 튜닝 관련

https://m.blog.naver.com/PostView.nhn?blogId=kmk1030&logNo=220992452346&proxyReferer=https:%2F%2Fwww.google.com%2F

##IBM 제공

https://www.ibm.com/support/knowledgecenter/ko/ssw_aix_71/performance/nfsstat_c_command.html



## 쓸만한 명령어

 

# nfs-client

$ nfsstat -m

/nfs/data from 192.168.137.41:/nfs/data

 Flags: rw,relatime,vers=4,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.137.42,minorversion=0,local_lock=none,addr=192.168.137.41

 

$ rpcinfo




# nfs-server

$ nfsstat  -r

Server rpc stats:

calls  badcalls   badclnt badauth xdrcall

176    3      0      3      0

 

Client rpc stats:

calls  retrans authrefrsh

2      3      2

 

$ rpcinfo















192.168.137.41 서버와 192.168.137.42 서버의 공유 디렉토리 설정 된 모습

192.168.137.41 / master-server1

192.168.137.42 / slave-server1

## 하나의 디렉토리를 공유하여 사용하기 때문에 아래와 같이 master 서버에서 파일 삭제하면 slave 서버도 함께 삭제가 된다. 

파일 추가도 동일하게 생성이 되며, 



@@ samba install / 삼바

OS 환경

Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016

 

  • Linux, FreeBSD, 상용 유닉스와 같은 각종 유닉스 계열 플랫폼에서 파일 서버나 도메인 컨트롤러와 같은 윈도 서버 호환 기능과 윈도와 리눅스 간 연계 기능을 제공하는 주요 오픈소스 소프트웨어 중에 하나 이다.

 

  • TCP/IP 프로토콜과 NetBIOS 프로토콜을 이용하여, 리눅스와 윈도우가 디스크(파일,디렉토리)를 공유하거나 주변장치(프린터)를 공유할 수 있다.

 

SMB(Server Message Block)

파일을 액세스 하거나, 프린트를 사용하는 프로토콜

 

CIFS(Common Internet File System)

SMB 프로토콜의 확장된 개념으로 로컬이나 서버에 있는 파일을 액세스 하거나, 다른 Client들과 공유하거나, 네트워크 접속이 끊어지거나 고장이 발생하면 자동으로 접속을 복원하는 프로토콜



$ rpm -qa samba 

 

## 없으면 설치

 

$ yum install samba samba-client

 

$ mkdir /home/samba

 

$ chmod 777 /home/samba

 

$ useradd smbuser01

$ passwd smbuser01

 

## 삼바 계정에 추가

 

$ smbpasswd -a smbuser01

 

설정 파일 복사

 

$ cp -r /etc/samba/smb.conf /etc/samba/ori1912_smb.conf

 

$ vi /etc/samba/smb.conf

[global] 

.. …

## 172.30.1. 추가

hosts allow = 172. 192.168.12. 172.30.1.

 

## 한국어 설정 ( 글자 깨질때 사용 default → unix charset = UTF-8 # 설정 안해도 된단 소리)

dos charset = CP949

unix charset  = UTF-8

 

# unix charset = EUC-KR  ## CP949 가능

 

## 로그 레벨 지정 3을 권장

log level = 3

 

## smb.conf 문법 확인 하거나, 활성화 된 상태의 value 를 확인 하고 싶을 때 

 

$ testparm 

 

## 전체 parameter 확인 하고싶을 때

$ testparm -s -v /etc/samba/smb.conf

 

@ samba 사용자 생성 2 

$ useradd -m samuser02 ( 패스워드 설정은 불 필요)

$ pdbedit -a samuser02

 

$ pdbedit -x samuser02 # 삭제 



## 동적으로 변경 하고 싶을땐 아래 참고

# smbd 로그 레벨을 1로 지정 

$ smbcontrol smbd debug 1



# smbd 로그 레벨 확인

$ smbcontrol smbd debuglevel 

 

## 공유 폴더 // 참고 하세요 ##

[samba]

        comment = shared Folder

        path = /home/samba/

        browseable = yes

        public = yes

        writable = yes

        read only = yes

        write list = test01 test02 test03 root sjyun

        create mask = 0777

        directory mask = 0777

        valid users = test01 test02 test03 root sjyun









samba 설치 된 서버와 windows 와 연결한 모습










? 포트 

udp 137 138

tcp 139 445 

?



## 안전하지 않은 ~~~

프로그램 제거 → windows  기능 켜기/끄기 SMB 1.0 CIFS 파일 공유 지원 클라이언트 설정 체크

 

 

Raid controller (hardware)

 

1. Raid controller(CLI)의 명령어는 각 벤더사(HP, Intel / Megaraid, Adaptec, 3ware 등)를 구분하며, OS 도 구분되어 사용하는 명령어가 아주 조금씩 다릅니다.

 

2. OS 단에서 Raid 상태를 점검하는 것에 대해서 기술 하였습니다.
→ BIOS에서 확인을 하려면 서버를 종료 해야하는 점 때문에 많이 사용 합니다.
(엄밀히 말하면 rom-bios 앞단에서 설정)

 

3. CLI를 이용해 BIOS 가 아닌 OS 단에서 Raid 재 구성도 가능하나 전반적인 이해가 필요 합니다. 

 

4. 벤더사 별로 분류 하였습니다.

 

5. Raid-controller 상태를 확인하거나, 재 구성 하는 용도로 사용할 command 설치를 “레이드 컨트롤러 설치” 라고 종종 말하기도 하는데, 이는 벤더사에 따라 명칭이 달라서 이렇게 말합니다.  (HP 사는 smart array controller 라고 하네요.)
정확히 표현하자면 “OS 단에서 확인 할 수 있는 레이드 컨트롤러 CLI mode 설치” 라고 하면 될것 같습니다.

편의상 레이드 컨트롤러 설치라고 기재 하겠습니다.

 

6. Windows 에서는 GUI로 설치가 가능하나 Linux, WIndows 명령어가 비슷하기에 CLI 로 가이드 작성 했습니다.

 

 


Intel

 

1. 모델명 : RMS25CB040

 

2. 가장 많이 접하는 Megaraid 입니다.

 

- windows

## 아래 명령어로 전체적인 명령어 옵션 확인을 합니다.

storcli.exe -h 

## 하나 하나 원하는 출력물만 보는건 학습이 필요 합니다. 간단하게 all 옵션으로 전체적인 부분 다 보면 됩니다.

.\storcli.exe /cx show all

1. Drive Groups

EID 뒤에 슬롯 번호가 있네요. 일반적으로 서버 정면으로 봤을 때 슬롯 번호는 

[0 1 2 3] 순서 입니다. 그런데 SATA 케이블을 변경하거나, 순서가 [3 2 1 0]인 오래된 서버도 있으니, 항상 확인하시고 교체가 되어야 합니다. 일반적으로 Fail 뜰때 교체를 하니 불이 들어 오겠죠. Type을 보면 Raid 1로 된  Drive 4개가 있네요. PD(physical drive)와 VD(Virtual Drives)에서  확인할 수 있습니다. 

state(상태) 부분과 아래쪽 부분 보시면 상태에 대해서 확인이 가능 합니다.

Onln = Online 으로 상태는 정상 이네요.

디스크 인식이 안되면 offline 으로 출력되고, controller 가 디스크에 문제가 생겼다고 판단을 하면 Degraded 나 partially degraded 로 출력이 됩니다. 

Offline, Degraded 와 같은 현상으로 교체를 하면 

일반적으로 controller는 재구성(Rebuilding)을 하며 online 상태로 변경이 됩니다.

여기 컨트롤러에서 state 는 Rebuild(Rbld) 로 표기 되겠습니다.

raid disk 의 교체 방법은 일반적으로, 문제가 생긴 raid controller 의 전체 백업 후에 (raid controller 의 장애에 대비) 교체 작업을 진행하면 됩니다.

 

또한, 서버를 끄고 디스크 교체를 할 수 있다고 한다면, 시리얼 넘버를 기억해 두었다가 교체 작업을 진행하면 되겠습니다.

 

 

 

2. VD LIST (Virtual Drives)

 

위에서 확인한것과 동일하게 Raid1 두개의 VD가 있네요 Raid와 state, 용량 확인이 됩니다.

간단한 부분으로 생략 합니다.

 

 

 

3. PD List (Physical Drives)

물리 디스크의 정보가 보이네요. SSD 디스크의 모델명도 나옵니다.

레이드 구성은 일반적으로 비슷한 시기에 생성된 동일한 모델명의 동일한 용량으로 구성해야 문제가 발생할 확률이 적다고 합니다. 여기서 주의할 점으로 해당 조건을 바탕으로 HDD로 구성되면, 공장에서 디스크를 찍어낼때 공정 라인이 동일하여(공장 환경, 습도, 제조 라인 등) 비슷한 시기에 함께 장애가 발생할 가능성도 높다고 합니다.

 

아래쪽을 참고해 보니 Hot spare 기능도 있으며, 디스크 장애가 발생하면 자동으로 spare 디스크가 리빌딩되거나, 명령어를 통해 리빌딩을 할수 있습니다. 

오래된 서버에서 Hot-Plugging 지원이 안될때 사용했던 것으로 알고 있습니다.

요즘에는 핫스왑, 핫플러그 명칭을 서로 혼합하여 사용하나 정확한 의미는 아래와 같습니다. (위키, 네이버 등 어느 정도 신뢰가 가는 사이트의 정의)



Hot-Swap

  • PC, server 등의 기계가 사용중 일때, 시스템을 중단하지 않고 주변 기기를 추가 하거나, 제거 가능.
  • USB, 마우스, 키보드, 프린터 또는 휴대용 하드 드라이브
  • 컴퓨터와 같은 기기의 구성 요소를 컴퓨터가 동작하는 도중에 제거하고 바꾸는 기능이다. 올바른 소프트웨어가 컴퓨터에 설치되어 있으면 사용자는 다시 시동을 하지 않고 구성 요소를 꽂았다가 뺄 수 있다. 이 기능의 잘 알려진 예로 USB를 들 수 있으며, 마우스, 키보드, 프린터와 같은 주변 기기를 추가하고 제거할 수 있다.

 

Hot-Plug

  • 컴퓨터 실행 중에 주변 장치를 부착해도 별다른 설정 없이 작동함을 뜻한다.
  • Hot Plug 기능을 사용하기 위해서는 SATA 방식의 디스크여야 한다. 
  • 메인보드에서 이를 지원해야 한다는 것인데, 대개 BIOS상에 AHCI 선택 메뉴가 있는 보드면 가능하고, BIOS 로 진입하여 AHCI 모드를 선택하면 된다.
  • 운영체제에 Hot Plug를 위한 장치 드라이버(대체적으로 AHCI 드라이버)가 자체 내장되어 있어야 한다는 점인데, 운영체제에 내장된 드라이버가 없다면 메인보드 제조사 등에서 제공하는 장치 드라이버(AHCI 드라이버)를 별도로 설치하면 된다.
  • 핫 스와핑은 구성 요소의 교체를 포함하지만 핫 플러깅은 시스템을 확장하는 구성 요소의 추가이다.

 

 


마무리

 

디스크 시리얼 넘버 확인도 가능하며 (디스크 장애시 A/S 여부를 공급업체를 통해 확인 할 수 있습니다.) 슬롯, 온도 등 여러가지 정보 확인이 가능하며, 이런 기능들에 대한 설명은 생략 합니다. 

(*) 디스크 장애 혹은 불량인 경우에는 A/S 기간에 하드디스크 구입 업체에게 전화를 걸어서 교체 가능 여부를 문의하고, 교체 하면 됩니다.

 

 


Intal 2

  1. Adaptec 6805 (Ubuntu 20.04)

 

## 간단 설치 URL

https://storage.microsemi.com/en-us/speed/raid/storage_manager/arcconf_v1_7_21229_zip.php

 

## MaxView 포함 URL

https://storage.microsemi.com/en-us/speed/raid/storage_manager/msm_linux_x64_v1_07_21229_tgz.php



$ cd /usr/local/src/

 

$ wget https://download.adaptec.com/raid/storage_manager/msm_linux_x64_v1_07_21229.tgz

 

$ mkdir msm_linux_x64_v1_07_21229

 

$ mv msm_linux_x64_v1_07_21229.tgz msm_linux_x64_v1_07_21229

 

$ cd /usr/local/src/msm_linux_x64_v1_07_21229

$ pwd 

/usr/local/src/msm_linux_x64_v1_07_21229

 

$ mkdir -p /opt/cmdline/arcconf/

 

$ cp -rp /usr/local/src/msm_linux_x64_v1_07_21229/cmdline/arcconf/arcconf /opt/cmdline/arcconf/ 

 

## 전체 정보

$ /opt/cmdline/arcconf/arcconf getconfig 1

 

## 간략한 정보

$ /opt/cmdline/arcconf/arcconf getconfig 1 ld

 

## Raid 상태

/opt/cmdline/arcconf/arcconf getconfig 1 ld | grep -i "stat\|Serial"

 

등등.

 









Adaptec 6805 raid controller smartctl

 

00 슬롯의 디스크

 

01 슬롯의 디스크








02 슬롯의 디스크

 

03 슬롯의 디스크

 

위 와 같이, Serial Number 가 각 디스크마다 다른것을 확인 할 수 있으며, 디스크 상태 검사를 할 수 있습니다.

 

 

 

 

 

 

안녕하세요. 저는 미들웨어 엔지니어 입니다.

현재 개인 PC 로 Win10-pro 사용 중이며, 회사에서도 windows-server 2012 이상 종류별로 사용 중인 상태 입니다.

 

현재 Win10-pro 에서 Hyper-V 를 사용하고 있는데, VM 생성할때 1세대를 지정하여 Centos-5.11 을 설치 하려 작업 중인데,

정상 설치가 안됩니다.

ISO 파일의 배포 중에 파일 변조에 대해서 checksum 결과 값 확인 해보니 이상 없으며,

VMware, VirtualBoX 에서는 정상 설치가 된 ISO 이며, 물리 PC 에서도 해당 ISO 로 정상 설치가 가능 합니다.

 

오래된 OS 를 설치하는 이유는, 저희 회사에서 Centos-5.11에서 어떠한의 서비스를 하고 있는데,

소프트웨어 이전 작업이 가능한지 테스트를 하기 위함과, linux 서버 보안 설정 테스트를 하기 위함 입니다.

 

아래 이미지는 Hyper-V 에서 1세대 지정 이후 설치 화면 스크린 샷입니다.

 

다음 단계로 넘어가기 위해 가상 키보드를 찾아 보았지만, Hyper-V 에서는 없는 것으로 보이네요.

 

아래에는 물리 PC 에서 동일한 ISO 로 정상 설치가 되는 모습입니다.

이미지 처럼 다음 단계로 넘어가기 위한 메시지가 출력이 되야 합니다.

 

아래 이미지는 다른 가상 서비스에서 설치한 모습입니다.

 

 

물론, Hyper-V 의 지원 여부에서 Centos-5.xx 는 1세대에서 지원이 되는 것을 확인 하였습니다.

https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/plan/should-i-create-a-generation-1-or-2-virtual-machine-in-hyper-v

 

질문 1) 위 상황은 어떤 문제인가요?

질문 2) Hyper-V 에서 설치 과정에 정의하는 1세대 2세대는 아래의 의미로 해석하는 것이 맞나요?

1세대란 legacy mode

2세대란 UEFI mode 지원

 

참고 사항 )

CentOS-5.11 다운로드 URL 첨부 합니다. (한국 대표 repository인 kakao, kaist, naver 는 오래된 OS 는 배포하지 않네요. JP 주소 입니다.)

http://ftp.iij.ad.jp/pub/linux/centos-vault/5.11/isos/i386/

http://ftp.iij.ad.jp/pub/linux/centos-vault/5.11/isos/x86_64/CentOS-5.11-x86_64-bin-DVD-1of2.iso

32bit , 64bit 동일 현상이니 어떠한 ISO 로도 확인이 가능 합니다.

 

 

 

'01_install (강좌) > 11_Hyper-v' 카테고리의 다른 글

[001] Hyper V Linux 설치 #!!!  (0) 2019.06.25

 

zabbix-agent ubuntu install




작성자 기준 테스트 환경 : Ubuntu-18.04.4(LTS)  - 최소 설치 (minimal) 기준

Linux yunli 4.15.0-76-generic #86-Ubuntu SMP Fri Jan 17 17:24:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux





  1. network configuration

$ vi /etc/netplan/50-cloud-init.yaml

.. ...

# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:

# network: {config: disabled}

network:

    ethernets: {}

    version: 2

    renderer:   networkd

    ethernets:

            eth0:

                    addresses:

                               - 192.168.137.61/24

                    gateway4:   192.168.137.1

                    nameservers:

                            addresses:

                               [168.126.63.1,168.126.63.2]

 

$ netplan apply















  1. agent install 

reference URL

 

https://www.zabbix.com/documentation/3.0/manual/installation/upgrade_packages/debian_ubuntu

 

https://www.zabbix.com/download_agents?version=4.0+LTS&release=4.0.0&os=Ubuntu&os_version=18&hardware=i386&encryption=GnuTLS&packaging=Archive



ubuntu 버전에 맞는 zabbix-server 3.0 dpkg 다운로드 받은 후에 아래 작업




$ dpkg -i zabbix-release_3.0-2+bionic_all.deb

Selecting previously unselected package zabbix-release.

(Reading database ... 66964 files and directories currently installed.)

Preparing to unpack zabbix-release_3.0-2+bionic_all.deb ...

Unpacking zabbix-release (3.0-2+bionic) ...

Setting up zabbix-release (3.0-2+bionic) …

 

$ apt-get update

Get:1 http://repo.zabbix.com/zabbix/3.0/ubuntu bionic InRelease [7,096 B]

Get:2 http://repo.zabbix.com/zabbix/3.0/ubuntu bionic/main Sources [1,196 B]

Get:3 http://repo.zabbix.com/zabbix/3.0/ubuntu bionic/main amd64 Packages [2,648 B]

Hit:4 http://archive.ubuntu.com/ubuntu bionic InRelease

Get:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]

Get:6 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]

Get:7 http://archive.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]

Fetched 263 kB in 3s (82.0 kB/s)

Reading package lists... Done

 

$ apt-get install zabbix-agent

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following NEW packages will be installed:

  zabbix-agent

0 upgraded, 1 newly installed, 0 to remove and 26 not upgraded.

Need to get 160 kB of archives.

After this operation, 630 kB of additional disk space will be used.

Get:1 http://repo.zabbix.com/zabbix/3.0/ubuntu bionic/main amd64 zabbix-agent amd64 1:3.0.30-1+bionic [160 kB]

Fetched 160 kB in 1s (141 kB/s)

Selecting previously unselected package zabbix-agent.

(Reading database ... 66970 files and directories currently installed.)

Preparing to unpack .../zabbix-agent_1%3a3.0.30-1+bionic_amd64.deb ...

Unpacking zabbix-agent (1:3.0.30-1+bionic) ...

Setting up zabbix-agent (1:3.0.30-1+bionic) ...

Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

Processing triggers for ureadahead (0.100.0-21) ...

Processing triggers for systemd (237-3ubuntu10.33) …

 

root@yunli:/usr/local/src# /etc/init.d/zabbix-agent start

 

// 설치 확인

$ netstat -nlpt

$ ps -ef | grep -i zabbix



  1. zabbix configuration (환경설정 - zabbix-server 환경설정에 맞추어서 작업 진행 해야합니다. )

  • 환경 설정 작업 전에는 항상 conf 파일 백업 해두는 것이 좋습니다.

 

$ vi /etc/zabbix/zabbix_agentd.conf

 

## 수정 start ##

95 Server=127.0.0.1

→  95 Server=192.168.137.43

 

136 ServerActive=127.0.0.1

→  136 ServerActive=192.168.137.43

 

147 Hostname=Zabbix server

→ 147 Hostname=zabbix.masangsoft.kr

 

## 수정 End ##

 

247 # AllowRoot=0

248 AllowRoot=1   ## 추가 




  1. 기타 (서버 설정마다 다름)

방화벽 설정이 되어있다면 해당 방화벽 설정에 맞게 추가 해줘야합니다.

10050 port 추가 

서버 설정에 맞게 자동 재시작 등록 해줘야 합니다.





  1. 확인

 

root@yunli:/usr/local/src# /etc/init.d/zabbix-agent start

[ ok ] Starting zabbix-agent (via systemctl): zabbix-agent.service.

root@yunli:/usr/local/src# netstat -nlpt

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp            0 0.0.0.0:10050           0.0.0.0:*               LISTEN      3553/zabbix_agentd

tcp            0 127.0.0.53:53           0.0.0.0:*               LISTEN      864/systemd-resolve

tcp            0 0.0.0.0:22              0.0.0.0:*               LISTEN      1376/sshd

tcp6           0 :::10050                :::*                    LISTEN      3553/zabbix_agentd

tcp6           0 :::22                   :::*                    LISTEN      1376/sshd

root@yunli:/usr/local/src# ps -ef | grep -i zabbix

zabbix    3553     1  0 05:14 ?        00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

zabbix    3554  3553 0 05:14 ?        00:00:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]

zabbix    3555  3553 0 05:14 ?        00:00:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]

zabbix    3556  3553 0 05:14 ?        00:00:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]

zabbix    3557  3553 0 05:14 ?        00:00:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]

zabbix    3558  3553 0 05:14 ?        00:00:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

root      3820  3021 0 05:36 pts/2    00:00:00 grep --color=auto -i zabbix



 

'01_install (강좌) > 12_Zabbix' 카테고리의 다른 글

zabbix-server_3.0(LTS) install #!!!  (0) 2020.03.12

zabbix-server install

작성자 기준 테스트 환경 : 

Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

centos-release-7-4.1708.el7.centos.x86_64

 

minimal 로 설치 했기 때문에 ifconfig 명령어가 없어 net-tools 설치 해야 합니다.

 

 

ifconfig not found

 

net-tools install



작업 전에 firewalld 를 iptables 변경해 줍니다. 추후 geoip 모듈을 올릴 수도 있고, iptables가 자세한 룰셋 설정시 더 익숙한 이유 입니다.

selinux disabled 도 해주세요.

 

  1. zabbix-server agent mysql install

 

$ rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

 

$ yum clean all 

 

$ yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent 

 

$ yum install mysql mariadb-server



## 설치된 패키지 확인 ##

zabbix-web-mysql-3.0.30-2.el7.noarch

zabbix-server-mysql-3.0.30-2.el7.x86_64

zabbix-release-3.0-1.el7.noarch

zabbix-web-3.0.30-2.el7.noarch

zabbix-agent-3.0.30-2.el7.x86_64

 

php-5.4.16-46.1.el7_7.x86_64

mariadb-5.5.64-1.el7.x86_64

httpd-2.4.6-90.el7.centos.x86_64



$ php -i | grep -i Configuration

Loaded Configuration File => /etc/php.ini

 

$ vi /etc/php.ini

;date.timezone =

date.timezone = Asia/Seoul ## added



$ systemctl start mariadb ; systemctl enable mariadb

 

$ mysql_secure_installation

패스워드 입력하고 yyyyyy 

 

$ mysql -uroot -p

password

mysql> use mysql;

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'eoqkraktkdthvmxm)#)@';

mysql> use zabbix; show tables;

mysql> quit; 



$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix 

 

$ mysql -u root -p

mysql> use zabbix; show tables;

## rows 113 confirm



$ vi /etc/zabbix/zabbix_server.conf

DBPassword=password 



$ php_value date.timezone Europe/Riga 

 

$ systemctl restart zabbix-server zabbix-agent httpd

 

$ netstat -nlpt

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp            0 0.0.0.0:22              0.0.0.0:*               LISTEN      739/sshd

tcp            0 0.0.0.0:10050           0.0.0.0:*               LISTEN      1610/zabbix_agentd

tcp            0 0.0.0.0:10051           0.0.0.0:*               LISTEN      1617/zabbix_server

tcp            0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1457/mysqld

 

$ systemctl enable zabbix-server zabbix-agent httpd mariadb

$ systemctl status zabbix-server zabbix-agent httpd mariadb

 

## 설정 완료 되었습니다. init 6 리부팅 테스트를 해보세요 ##



  1. zabbix-server configuration

 

$ php -i | grep -i Configuration

Loaded Configuration File => /etc/php.ini

 

$ vi /etc/php.ini

;date.timezone =

date.timezone = Asia/Seoul ## added

 

'01_install (강좌) > 12_Zabbix' 카테고리의 다른 글

zabbix-agent ubuntu install #!!!  (0) 2020.03.12

+ Recent posts