728x90
반응형
NAS란?


- 분산처리환경의 RPC를 사용하는 파일 및 자원 공유 시스템

- TCP/IP 네트워크를 통한 서버/클라이언트 구조

- Unix 운영체제간의 파일 공유

- 보안에 취약하므로 주의해서 사용


NFS 관련 데몬

  1. portmap & rpc.bind : NIS,NFS등 RPC(Remote Procedure Call)연결에 관여하는 데몬
    (RPC : 다른 주소공간에서 서브루틴이나 프로시저를 실행시키기 위한 기술, RPC를 이용하면 로컬에서 실행하는 것같은 결과를 받음)
  2. nfs : nfs 서비스를 구동하기 위한 데몬
  3. rpc.nfsd : rpc 요청처리와 서버측에서 rpc.mountd에 의해 마운트되면 클라이언트는 rpc.nfsd로 서버에 요청 처리와 명령 실행등을 포함한 작업을 수행
  4. rpc.mountd : 클라이언트가 마운트를 요청하면 /etc/exports 파일 설정에 따라 마운트 요청을 처리
  5. rpc.statd : rpc.rockd와 함께 작동하며 파일잠금 및 해제와 비정상적인 종료시 복구를 담당
  6. rpc.lockd : 파일 잠금을 통해 클라이언트에서 여러 사용자가 한 파일을 수정하는 것을 방지
  7. rpc.rqoutad : NFS파일 시스템을 마운트한 사용자에게 quota를 처리
  8. netfs : samba, nfs, ncp 등을 마운트 하거나 언마운트 해주는 데몬

  • NFS 서비스는- nfsd- rpc.mountd- rpc.statd- rpc.rockd- rpc.rquotad
  • NFS 서버는- nfsd- rpc.mountd- rpc.statd- rpc.lockd 데몬이 작업
  • NFS 클라이언트는- rpc.statd- rpc.rockd- rpc.rquotad


NFS 관련 패키지

  1. nfs-utils-1.0.8.rc2-4.FC5.2
  2. nfs-utils-lib-1.0.8-3.1
  3. system-config-nfs-1.3.19-1


NFS 데몬 실행

Server : rpcbind -> nfs -> nfslock 순으로 데몬 실행
Clinet : rpcbind -> nfs 순으로 데몬 실행

NFS 서버 설정

/etc/exports
- NFS서버의 주요 설정파일
- rpc.mountd, rpc.nfsd는 이 파일에 설정에 따라 구동

1) 형식
[디렉토리]     [클라이언트] (option)

Options
ro : 읽기 전용 모드
rw : 읽기 쓰기 모드
root_squash : 클라이언트의 root를 서버의 nobody 권한으로 설정
no_root_squash : 클라이언트의 root를 서버의 root 권한으로 설정
insecure : 인증되지 않은 엑세스도 가능
sync : 클라이언트가 파일 쓰기 완료 후 디스크 동기화

2) NFS로 공유하고자 하는 폴더 생성 (NFS 서버)
# mkdir /nfsdata

3) 환경설정 파일 수정
# vi /etc/exports
/nfsdata 10.10.1.100(rw) -> 10.10.1.100은 공유할 클라이언트 IP

- Example - 

  • nobody 권한 : 시스템 계정으로 로그인이 되진 않지만 아파치 웹 서버가 필요로 하는 계정이다. 웹 서버(httpd)가 메모리로 올라갈때 root 권한으로 동작하는 것이 아니라 nobody 권한으로 작동하므로 nobody 계정이 없을 경우 메모리에 올라갈 수 없다.

4) NFS 시작 (NFS 클라이언트)
# mkdir /client

mount -t nfs 10.10.1.100:/nfsdata /client

umount /client -> 마운트 해지

5) NFS 명령어

# mount -t nfs [NFS_server:/dir] [NFS_client_dir]
NFS클라이언트에서 NFS 서버의 자원을 마운트 할때 사용

Ex) mount -t nfs 10.10.1.100:/nfsdata /nfsdata

# showmount [host] [option]
# showmount -e
현재 마운트 되어 있는 NFS를 확인

# exportfs [option]
NFS상의 exporting 정보를 출력하거나 설정변경

option
-a : 공유를 허가한 모든 디렉토리 의미
-r : 공유를 허가한 디렉토리를 다시 export
-u : 공유 디렉토리를 export 리스트에서 제거
-i : /etc/exports 파일 무시하고 설정
-v : export 정보 출력

/var/lib/nfs/rmtab
NFS서버에 현재 마운트된 사용자 정보 출력
사용법
    # cat /var/lib/nfs/rmtab

/etc/fstab에 등록

해당 NFS를 부팅할때 불러오고 자동으로 불러오고 싶으면 /etc/fstab에 넣어주면 된다.
# vi /etc/fstab
10.10.1.100:/nfsdata    /client        nfs    defaults,_netdev 0.0
이렇게 설정하면 되는데 계속 nfs계속 연결시도 하는데 일정시간동안만 시도하고 없을경우 시도를 멈추게 하려면
defaults 대신에 timeo=25,intr 해주면 25초간만 확인하고 넘어가면 그냥 부팅된다.

10.10.1.100:/nfsdata    /client nfs    timeo=25,intr 0.0

/etc/fstab에서 NFS 마운트 옵션
rsize : NFS서버로부터 읽어 들이는 바이트수 지정 기본값 1024byte
wsize : NFS서버에 기록할 때 사용하는 바이트수 기본 지정값 1024byte
timeo : 클라이언트에서 타임아웃이 발생되고 나서, 다시 재전송 요구를 보낼때 시간
retrans : 재정송 횟수 지정
port : NFS서버에 연결시 사용하는 포트번호 지정
fg : NFS서버에 타임아웃이 발생되면 즉각 접속 중지
intr : 인터럽트 허용
hard : 타임아웃 발생시 "server not recording" 에러메시지 표시후 계속 재시도
soft : 타임아웃 발샐시 I/O 에러 표시
※ _netdev : 네트워크에 연결 후 Mount를 실행하라는 옵션
(네트워크연결보다 System의 Mount가 우선적으로 일어나기떄문에 nfs 서버에 연결이 안되어 부팅대기현상이 발생)





구축 예제


- 서버측 -

# service rpcbind start
# service nfs start
# service nfslock start

# rpcinfo -p

rpc.bind 또는 portmapper와 nfs가 보인 정상 실행중

# vi /etc/exports
/home/nfs 192.168.0.5(rw)

# service nfs restart

# showmount -e

# exportfs


- 클라이언트 -

# service rpcbind start

# service nfs start

# rpcinfo -p

# mount -t nfs 192.168.0.5:/home/nfs /home

# chkconfig --level 2345 rpcbind on

# chkconfig --level 2345 nfs on

# vi /etc/fstab

192.168.0.5:/home/nfs    /home    nfs    defaults,_netdev 0 0

# mount -a
으로 fstab 정상 확인

# showmount -e

# exportfs
반응형

'Linux' 카테고리의 다른 글

Linux root Password 변경 (RHEL7-가상화)  (0) 2018.08.08
Linux root Password 변경 (RHEL7)  (0) 2018.08.08
Linux Memory Slab 관리  (0) 2018.08.08
Linux strace  (0) 2018.08.08
Linux Memory 재할당  (0) 2018.08.08
728x90
반응형
리눅스 커널은 기본적으로 메모리가 유휴 상태로 있는 것을 선호하지 않는다. 프로세스에 할당되어 있지 않은 메모리는 커널이 사용을 하고 커널은 이런 메모리를 주로 캐시용도로 사용한다.


- 캐시메모리 종류

1) page cache : 리눅스는 물리적인 저장/통신 장치와 데이터를 주고 받을 때 먼저 메모리에 적재한 후 데이터를 주고 받는데 나중에 동일한 데이터에 대한 접근을 할 경우 메모리에서 바로 가져오도록하여 I/O 성능을 높이기 위함이다. 이때 Page라는 단위로 관리하는데 이를 page cache라고 한다.

2) inode, dentry cache : 파일의 자료구조를 의미한다. 보다 빠른 데이터 접근을 위해 Slab의 자료구조에 추가되어 사용, dentry는 경로명 탐색을 위한 cache 역할도 수행


※ Slab

Slab Allocator라고 하며 일종의 자원 할당자 중 하나로 4KB의 크기를 가진 Page로 데이터를 저장하고 관리할 경우 발생하는 단편화를 최소화 하기 위해 만들어졌다.
리눅스 커널은 자료구조로 Slab을 사용하고 있으며 /proc/meminfo에서 리눅스 커널이 사용하는 cache크기(Slab : 349364KB) 를 의미한다.

리눅스 커널에서 커널과 디바이스 드라이버, 파일시스템 등은 영구적이지 않은 데이터(inode, task 구조체, 장치 구조체 등)들을 저장하기 위한 공간이 필요한데 이것이 Slab 구조하에 관리된다. /proc/meminfo에서 출력되는 Slab 값은 이러한 데이터들의 메모리상 크기를 의미하기 때문에 커널 cache라고 표현한다.






프로세스 메모리를 제외한 유휴 메모리가 없는 경우


프로세스가 사용하는 메모리를 제외한 남은 메모리는 /proc/meminfo 파일의 Slab에서 찾을 수 있다. Slab의 크기가 크다면 커널이 Slab 자료구조에 계속해서 cache 데이터로 담고 있다는 것이다. 이는 동작하고 있는 프로세스의 성격과 관련이 높다. 해당 프로세스의 주 작업 패턴이 특정 파일을 대량으로 생성하고 이 데이터를 가공처리하는 작업을 반복하며 작업과정에서 생성, 삭제되는 파일이 많을 경우이다.

리눅스 커널은 파일시스템의 성능을 나아가 시스템의 성능을 개선하기 위해 inode와 dentry를 메모리에 cache한다. 하지만 파일을 빈번하게 생성/삭제 하거나 대량의 파일을 다루는 시스템의 경우 해당 파일을 자주 재활용(생성/기록 후 데이터를 지속적으로 접근하여 읽음)하지 않는다면 cache에 메모리를 사용하기 보단 I/O를 위한 버퍼 또는 프로세스에 할당되어 활용하는 편이 더 좋다.

- Linux Slab 자료 구조의 상태를 살펴 볼 수 있는 명령어 : slabtop 
해당 명령어는 inode와 dentry cache의 현재 크기를 알 수 있다.



cache 메모리 반환


vfs_cache_pressure을 이용하여 리눅스 커널에게 cache 데이터를 반환하도록 한다.

- vfs_cache_pressure란?
리눅스 커널의 vm 구조와 관련된 파라미터로 vfs_cache_pressure라는 것이 존재한다. 이 파라미터는 inode 오브젝트에 대한 cache로 사용된 메모리를 반환하는 경향의 정도를 지정하는 항목이다. (기본값은 100)
이 값을 0으로 설정하게 되면 리눅스 커널은 오브젝트에 대한 cache를 반환하려고 하지 않을것이며 시스템은 OOM(Out of Memory) 상태가 발생한다.
▷ OOM : 프로세스의 메모리 크기가 특정 값 이상이 되면 kill 통해 시스템이 강제로 죽이는 기능
이 값을 100 이상으로 설정하면 리눅스 커널은 오브젝트에 대한 cache를 가급적 반환한다. (cache를 보관하려하지 않음) 이를 이용하면 inode와 dentry cache를 줄일 수 있다.

100이상의 값을 설정하면 되는데 10000 정도로 설정할 시 문제 없이 운영이 가능하다. 

# echo 10000 > /proc/sys/vm/vfs_cache_pressure
또는
# sysctl vm.vfs_cache_pressure=10000

영구적으로 설정하기 위해서는 /etc/sysctl.conf 파일에
vm.vfs_cache_pressure = 10000
으로 설정한다.

이러한 cache에 대해 정책을 세울 수도 있는데 해당 정책은 일시적인 휘발성 효과이다.

echo 1 > /proc/sys/vm/drop_caches => Page cache를 해제
echo 2 > /proc/sys/vm/drop_caches => inode, dentry cache를 해제
echo 3 > /proc/sys/vm/drop_caches => Page, inode, dentry cache 모두 해제

3번으로 설정할 시에는 시스템이 잠시 멈출수도 있다. 해당 명령을 실행전 cache에 있는 휘발성 데이터들을 sync 명령을 통해 저장장치에 반영시켜야 한다.




반응형

'Linux' 카테고리의 다른 글

Linux root Password 변경 (RHEL7)  (0) 2018.08.08
Linux nfs 설정  (0) 2018.08.08
Linux strace  (0) 2018.08.08
Linux Memory 재할당  (0) 2018.08.08
Linux rsync  (0) 2018.08.08
728x90
반응형
strace 란?


- 어플리케이션이 사용하는 system call과 signal등을 추적하여 성능 저하를 일으키는 부분이 없는지, 에러가 나는 부분이 없는지를 확인하는데 사용하는 디버깅 툴


옵션

-s : 추적할때 화면 혹은 파일에 뿌려 줄 문자열에 대한 최대값을 설정 (이 값이 기본 값인 경우 많은 부분이 잘려서 제대로 확인할 수 없음)
-f : 여러개의 워크 프로세스 혹은 워크 스레드를 만들어서 사용하는 어플리케이션을 추적할 때 사용하는 필수 옵션
-e : 특정 시스템 콜을 추적 
Ex) strace -e open ls 또는 strace -e trace=open,read ls
-o : strace의 결과를 파일로 저장
-p : 실행중인 프로세스에 strace 실행 (프로세스의 pid 또는 명령어를 입력)
Ex) strace -p 1725
-t : 각 trace에 대한 시간정보 출력 (현재시간)
-r : 각 trace의 상대시간 출력 (trace 내의 실행 시간)
-c : 시스템 콜 통계 정보 생성 (출력 목록 중 calls는 특정 시스템 콜이 얼마나 많이 실행되었는지 출력)
 

Tip

- 소켓을 열 때 어떤 옵션을 사용하는지 (setsockopt), 연결 맺기와 끊기는 잘되는지 (connect, close), 정상적으로 컨피그 파일을 잘 읽는지 (access, read) 등을 확인



반응형

'Linux' 카테고리의 다른 글

Linux nfs 설정  (0) 2018.08.08
Linux Memory Slab 관리  (0) 2018.08.08
Linux Memory 재할당  (0) 2018.08.08
Linux rsync  (0) 2018.08.08
Linux xargs  (0) 2018.08.08
728x90
반응형
메모리 재할당이란?


리눅스 커널은 기본적으로 메모리가 유휴 상태로 있는것을 선호하지 않는다. 특정 프로세스에 할당되어 있지 않은 메모리는 커널이 사용하게 되고 주로 캐시 용도로 사용한다. 이런식으로 메모리를 사용한다면 사용가능한 메모리가 줄어들텐데 이때 사용하지 않는 메모리를 필요로 하는 다른곳에 재할당 하는것을 메모리 재할당이라한다. 주로 page cache가 반환이 되고 특정 조건이 되면 프로세스에 할당된 메모리를 회수하고 다른 프로세스에 할당하는 swapping도 발생한다. page cache는 캐시 메모리이기 때문에 회수하여도 시스템 성능에 영향이 없지만 swapping의 경우 프로세스에 할당된 메모리이기 때문에 시스템 성능에 영향을 줄 수 있다.



메모리 재할당이 발생하는 시기


프로세스로부터 메모리 할당 요청이 들어오면 커널은 FreeList에서 사용가능한 메모리 영역을 찾아서 반환한다. 이 때 사용가능한 메모리 영역이 없다면 사용하고 있는 메모리 중에 반환할 수 있는 메모리가 있는지 찾아서 반환해 준다. vm.swappiness 커널 파라미터가 이 과정에서 사용되며 이 값에 따라 page cahce에서 찾아서 반환할 것인지 다른 프로세스에 할당되어 있는 메모리를 찾아서 반환할 것인지를 결정한다.
또한 시스템 메모리가 임계치 이하로 내려갈 경우 kswapd 데몬을 통해서 메모리 반환이 일어난다. 이 임계치 값은 vm.min_free_kbytes 커널 파라미터로 관리된다.




vm.swappiness




swap tendency 계산식으로 mapped_ratio는 현재 사용중인 메모리 사용률, distress는 현재 scan 중인 메모리 영역의 priority에 따른 가중치, swappiness 는 커널 파라미터 갑이다.
mapped_ratio와 distress는 사용자가 수정할 수 없지만 swappiness는 sysctl을 통해 수정할 수 있다. 결과적으로 저 계산식의 값이 100 이상이되면 page cache를 반환하지 않고 프로세스에 할당된 메모리를 재할당한다.

※ 프로세스에 할당된 메모리를 재할당 한다고해서 active 메모리를 재할당하는것이 아닌 프로세스에 할당된 메모리중에서도 inactive 메모리를 재할당 하는데 회수된 메모리를 가진 프로세스의 메모리 영역은 메인메모리에서 지워지고 동시에 swap 영역으로 이동한다. 반환된 메모리를 가진 프로세스는 RAM을 사용하는 것이아닌 Disk의 swap 영역을 사용하게 된다는 의미이다.  

※ 리눅스 Buddy System이란?
- Buddy System은 내부적으로 11개의 Zone을 가지고 있다. 연속된 Page의 개수를 가지고 정렬하는데 1,2,4,8,16,32,64,128,256,512,1024 개로 관리한다. 즉 물리적으로 연속된 Page가 1개인지 2개인지 4개인지등을 가지고 관리한다. Buddy System이 이렇게 관리하는 이유는 8KB의 메모리 할당 요청이 들어왔을때 1개(4KB)짜리 리스트에서 2개를 주는것보다 2개(8KB)짜리 리스트에서 1개를 주는것이 더 효율적이기 때문이다.

메모리 재할당을 하기위해 shrink_active_list() 함수가 scaning 하는 메모리 존이 어디냐에 따라 distress 값이 결정된다.  처음 scaning할 때 1개짜리 존부터 1024개의 영역까지 scan하는데 1024개의 존까지 왔다면 메모리 재할당은 실패했다고 봐야한다. 그래서 distress의 값은 상당히 커진다.



만약 swappiness 값을 0으로 준다면 distress의 값이 100이 되어야 스왑을 사용하게 된다. mapped_ratio 값이 50보다는 클 수 없고 distress가 50이 되어도 swap_tendency는 100을 넘지 못하기 때문이다.
그래서 가능한 page cache를 비우고나서 스왑을 사용하도록 하게 하려면 swappiness의 값을 0으로 해주는 것이 좋다.



vm.min_free_kbytes


이 값은 kswapd가 깨어나서 메모리 재할당을 하느냐 마느냐 결정하는데 사용하는 값이다. 

※ kswapd : 커널에 의해 백그라운드로 동작하는 데몬이며 현재 남아 있는 메모리가 어느정도 이냐에 따라 page cache, dentry cache, inode cahce 등을 미리 비워두는 작업을 한다.

메모리 재할당을 할당이 실패할때만 진행한다면 시스템 성능이 낮아질 수 있기 때문에 특정 임계치 밑으로 내려가게 되면 백그라운드에서 미리 재할당을 해두어 시스템 성능을 유지할 수 있도록 도와준다.



여기서 min_pages 값이 min_free_kbytes 값이고 low_pages 는 min_free_kbytes 값의 2배, high pages는 3배를 의미한다. min_free_kbytes 값의 2배에 해당하는 값 밑으로 내려온 순간부터 kswapd가 메모리 재할당을 시작하며 min_free_kbytes 값까지 내려온다면 백그라운드 데몬이 아닌 포어그라운드 프로세스로 동작하면서 메모리를 재할당을 시작한다. 그리고 min_free_kbytes의 3배에 해당하는 값까지 재할당이 완료되면 더 이상 재할당을 하지 않는다. (min_free_kbytes의 값이 너무 낮으면 백그라운드 재할당이 제대로 되지 않고 너무 높으면 시스템에 악영향을 끼칠 수 있다. 보통 이 값은 설치된 물리 메모리의 값을 기준으로 설정되며 특별한 이유가 있지 않는 한 기본값을 수정할 필요가 없다.)



vm.vfs_cache_pressure


해당 값은 메모리 재할당 시 dentry cache, inode cache를 재할당 할 때 영향을 주는 값이다. 



위의 내용은 dentry cache 개수를 100으로 나눈 후 해당 파라미터 값을 곱하게 되는데 기본으로 설정된 100으로 계산하면 딱  사용하지 않는 dentry cache만 반환을 한다.
이 값을 크게 하면 더 많은 dentry cache, inode cache가 반환되지만 inactive list에 있는 메모리뿐만 아니라 active list에 있는 메모리까지도 반환이 되기때문에 성능에 큰 영향을 미칠 수 있다.

※ 많은 양의 파일을 열어 놓고 I/O 작업을 하는 서버들의 경우 이 값이 커서 active cache 까지 반환이 된다면 커널 내부적으로 할당과 반환을 반복하면서 무리한 CPU usage를 점유하고 커널의 행까지 일으킬 수 있다.


위의 값들 중 vm.swappiness 값을 제외하고는 수정하지 않는 것이 가장 좋다.



반응형

'Linux' 카테고리의 다른 글

Linux Memory Slab 관리  (0) 2018.08.08
Linux strace  (0) 2018.08.08
Linux rsync  (0) 2018.08.08
Linux xargs  (0) 2018.08.08
Linux Multipath Error  (0) 2018.08.08
728x90
반응형
rsync 란?


rsync(remote sync)는 원격에 있는 파일과 디렉토리를 복사하고 동기화 하기 위해서 사용하는 툴이며 동시에 네트워크 프로토콜이다.
리눅스와 유닉스에서는 백업용도로 사용하는 툴이며 rsync는 CLI툴로 커맨드 라인의 옵션들을 이용해서 배치 프로그램을 개발하기 쉽다는 장점이 있다.
이 스크립트를 cron 등에 올리는 걸로간단하게 백업 혹은 미러(mirror)시스템을 구축할 수 있다.


rsync의 기능상 장점들

- 원격 시스템으로부터 파일을 효율적으로 복사하거나 동기화 할 수 있다.
- Link, device, 파일의 소유자와 그룹권한등 파일의 부가정보도 복사할 수 있다.
- scp보다 빠르다. rsync는 remote-update 프로토콜을 이용해서 차이가 있는 파일만 복사한다.
  처음에는 모든 파일과 디렉토리를 복사하겠지만 다음부터는 차이가 있는 파일만 복사하기 때문에 더 빠르고 효율적으로 작동한다.
- 데이터를 압축해서 송/수신하기 때문에 더 적은 대역폭을 사용한다.


rsync의 동기화 알고리즘

1) 파일 전송 결정
기본적으로 rsync는 파일의 크기와 수정 시간을 비교하는 것으로 파일을 전송할지 말지 결정한다.
이 방법은 아주 작은 CPU 자원을 소모하지만 실수가 발생할 수 있다.
일반적으로 파일의 내용을 변경하면 크기와 수정시간이 변하지만 항상 그렇다고 단정할 수는 없기 때문이다.
--checksum 옵션을 이용하면 비교 방법을 개선할 수 있다. 이 옵션을 켜면 파일의 checksum을 비교한다.
크기/시간을 이용한 비교 방법보다 안전하지만 더 느리고 더 많은 자원을 사용한다.

2) 전송할 파일 부분의 결정
파일 전송을 결정했다고 가정해보자. 파일을 전송하기 위한 간단한 방법은 전체 파일을 그대로 복사해버리는 것이다.
쉬운방법인데 파일의 크기가 클 경우 효율적이지않다.
1G크기의 파일이 있을때 바뀐 부분이 1K라고 하면 1K의 수정  내용때문에 1G를 복사하게 된다.
rsync는 파일의 변경된 부분만 효과적으로 복사하기 위한 알고리즘을 가지고 있다.
rsync는 파일의 고정 크기를 가지는 청크(chunk)로 나눈 다음에 checksum을 계산한다.
이 checksum을 서로 계산해서 다를 경우 해당 부분의 청크만을 복사한다.
만약 앞 부분의 정보가 수정되어 정보들이 밀린다면 모든 청크의 checksum이 어긋날 것이다.
이 문제를 피하기 위해서 Rolling hash를 사용한다.





rsync 사용법


명령어

# rsync [options] [source] [destination]


옵션

-a : 아카이브 모드로 자주 사용하는 옵션을 하나로 묶는 옵션(파일 스탬프, 퍼미션, 소유자 정보를 그대로 복사)

-v : 상세모드로 실제 복사하는 파일 목록과 전송량을 표시하는 옵션으로 명령어 실행결과를 바로 확인

-n : dry-run모드로 실제 파일 복사는 하지 않고 처리될 대상 파일목록만 출력

-r : 하위 디렉토리 포함하여 전송

-z : 데이터 파일을 압축

-c : checksum을 사용하는 옵션

-b : 동기화할 디렉토리아 이미 파일이 존재하는 경우 동기화할 디렉토리에 백업(이 경우 기본적으로 ~ 가 붙음)

-u : 동기화할 디렉토리에 원본보다 최신파일이 있을 경우 해당 파일은 복사하지 않음

-d : 동기화 소스에 없는 파일이 동기화할 곳에 있는 경우 그 파일을 삭제

-h : 결과를 사람이 읽기편한 포맷으로 출력

-i : 모든 업데이트를 요약하여 출력

-p : 퍼미션 정보를 유지하면서 동기화

-o : 소유자 정보를 유지하면서 동기화(root 권한을 가진 유저만 사용가능)

-g : 그룹 정보를 유지하면서 동기화

-e : ssh, rsh 같은 remote shell 프로그램을 선택(안전한 통신을 보장해주는 ssh를 이용하는데 -e 옵션이 없다면 ssh를 사용)

--progress : 전송 진행상황을 표시

--stats : 결과 보고

--delete : 원본 서버에 없는 파일은 백업 서버에서 삭제

--exclude : 제외할 파일 지정

--bwlimit : 대역폭(복사속도) 제어

--daemon : rsync를 데몬 모드로 실행

--max-size : 특정 크기 이상 파일 제외 (rsync 2.6.4 버전부터 추가된 옵션)

--min-size : 특정 크기 이하 파일 제외 (rsync 2.6.7 버전부터 추가된 옵션)



설치

# yum install rsync





rsync 사용 예제


로컬내에서 파일과 디렉토리 복사 및 동기화

1) 로컬에서 파일 복사 및 동기화

원격파일 복사 프로그램이지만 로컬에서 사용해도 문제가 없다. 만약 목적지 디렉토리가 없다면 자동으로 디렉토리를 생성

2) 로컬에서 디렉토리 복사 및 동기화

디렉토리를 로컬의 다른 위치로 복사할 수 있다. moniwiki 디렉토리를 /tmp/backups 디렉토리로 복사했다.


moniwiki 디렉토리를 다시 한번 복사해봤다. rsync의 설명이 맞다면 복사하는 파일이 없어야 할 것이다.


파일을 하나 추가해서 추가된 파일만 복사되는지 확인 (README.txt. 파일을 생성하였고 해당 파일만 복사가 되었다)


README.txt. 파일만 수정한 후 rsync를 실행하였을 때 수정된 README.txt 파일이 동기화된다.


서버로부터 파일과 디렉토리를 복사 혹은 동기화 하기

1) 로컬에 있는 moniwiki 디렉토리를 원격 서버로 복사하는 예제


2) 원격 서버의 디렉토리를 로컬 서버로 복사하기



rsync server 모드로 사용

--daemon 옵션을 이용하여 서버모드로 작동할 수있다. xined를 이용해 시스템 서비스로 등록

1) xinetd 패키지 설치
# yum install xinetd

2) /etc/xinetd.d/rsync 설정 파일 생성


3) rsync 설정파일은 /etc/rsync.conf이고 파일이 없는 경우 직접 만들어야 한다.

- 복사(동기화) 디렉토리로 /home/share를 선택했다.
- 읽기/쓰기 모두 가능하게 했다.
- 디렉토리에 대한 소유자는 nobody.nogroup로 했다. /home/share 소유자를 nobody.nogroup로 변경한다.
- 접속 허용 유저로 yundream을 추가했다.
- auth users에 대한 설정파일은 /etc/rsyncd.secrets에 저장한다

4) /etc/rsyncd.serets 파일에 접속유저와 패스워드를 설정할 수 있다. (패스워드를 mypassword 로 설정)


5) 읽기 테스트


6) 쓰기 테스트



데이터 복사 진행 상황 확인하기


--progress 옵션을 키면 진행정도를 화면에 출력


include, exclude 옵션

include와 exclude 옵션을 이용해서 복사할 파일을 추가하거나 제외할 수 있다.


data 디렉토리를 복사에서 제외


*도 사용할 수 있다.


delete 옵션

rsync는 파일이나 디렉토리가 없으면 새로 만든다. 그러나 파일이나 디렉토리가 존재할 경우 삭제하고 싶을때 이 옵션을 사용한다.


로컬 서버에 text.txt 파일이 있으면 삭제한 후 복사하는 예제


전송할 파일의 최대 크기를 정하기

--max-size 옵션을 이용해서 전송할 파일의 최대크기를 정할 수있다


10K 이내의 파일만 복사하는 예제


성공적으로 전송한 후 원본파일 지우기

--remove-source-files를 이용하면 전송이 끝난 후 원본파일을 삭제




Bandwidth 제한 설정

--bwlimit 옵션을 이용해서 파일 전송에 사용할 네트워크 대역폭을 제한할 수 있다.
인터넷 서비스중인 서버를 다른 서비스에 영향을 주지않는 범위내에 파일 복사를 원할 경우 사용


bwlinit를 사용해서 대역폭 제한



반응형

'Linux' 카테고리의 다른 글

Linux strace  (0) 2018.08.08
Linux Memory 재할당  (0) 2018.08.08
Linux xargs  (0) 2018.08.08
Linux Multipath Error  (0) 2018.08.08
Linux FTP 구성  (0) 2018.08.08
728x90
반응형
  • 기본적인 명령어 뒤에 파이프로 추가하여 사용
  • 파이프 이전에 명령을 인자로 받아 명령어를 실행하는 구조

xargs [옵션] 명령어

  • 옵션
    - a : 표준 입력 대신 파일에서 항목을 읽음, 이 옵션을 사용하여 명령을 실행하면 stdin(표준 스트림)은 변경되지 않는다. 그렇지 않으면 stdin이 /dev/null에서 리다이렉션 됨
    - O : 공백이나 특수문자를 찾을때 사용 (문자를 그대로 사용)
    (Ex. find /opt -name “*.[ch]” | xargs touch -> 여기서 파일 이름에 공백이 있을 경우 각각 분리된 파일로 넘겨지는데 find /opt -name “*.[ch]” -print0 | xargs -O touch 형식으로 사용하면
    -print0 은 파일 사이의 공백을 \0으로 분리자로 출력하고 xargs에서는 \0으로 표시된 분리자를 인식하여 하나의 파일이름으로 인식하고 다음 인자로 넘어간다)
    - d : 입력된 문자를 그대로 사용한다 (따음표, 백슬래쉬 같은 특수문자), 단순히 문자가 스페이스 같은걸로 분리되어 있을때 사용가능 하지만 다른 인수와 같이 처리되는 데는 사용 불가능
    - n : 지정된 숫자만큼 행을 출력 (앞에서 들어오는 인자의 수를 제한할 수 있다. 앞에서 5개의 표준 입력이 만들어져도 -n 으로 지정한 숫자만큼의 매개변수가 넘어온다.)
    - p : 사용자에게 각 명령 행을 실행할지 여부와 터미널에서 행을 읽는거에 대한 여부를 묻는다 ( yes , no 지정)
    - P : 하나의 명령에 프로세스 지정, -n 옵션과 같이 사용 ( -n으로 10개의 출력을 한다면 -p를 사용시 -n만큼의 프로세스가 실행, -p를 0으로 지정하면 한번에 사용할수 있는 프로세스를 모두 사용)
    - t : xargs를 통해 구성된 명령어를 표준 에러로 출력 (실행된 커먼드가 무엇인지 표시하므로 디버깅과정에 유용)
    - s : 한 라인에 들어갈 수 있는 문자열 수를 지정, 기본적으로 128k 안으로 문자열을 만들어 하나의 명령을 실행하나 해당 옵션은 최대 1024k까지 사용가능하게 한다.
    - x : -s 로 지정한 크기가 초과되면 종료시킨다
    —show-limits : xargs의 버퍼 크기 선택 및 -s 옵션에 대한 길이 제한을 출력
    - E : 문자열 끝을 eof-str로 설정한다. 
    - I(i) : xargs에 전달된 라인 전체를 뒤에 나오는 명령어의 인자로 사용 (디폴트로 라인 전체를 의미하는 기호는 {} 이다)
    (Ex. find . -name “*.c”” | xargs -i {} sh -c ‘echo -n {} >> c_file.txt; stat -c %Y {} >> c_file.txt’ -> 하위 폴더에서 모든 C로 끝나는 파일들을 찾아 파일이름과 날짜롤 c.file.txt에 저장)
    - l(L) : 해당 명령을 사용하면 명령어 뒤에 공백이 있으면 다음 행으로 인식하는게 아닌 다음줄에 입력 라인에 있어도 논리적으로 이어지게 한다.
    (-l 옵션을 사용하면 읽어들이는 각 행은 내부적으로 버퍼링이 된다. -l 옵션만 사용하는 경우 허용하는 버퍼의 상한이 있어 제한이 걸리는데 (대량의 파일이나 행을 읽어들이는 경우) -s 옵션을 함께 사용하면
    -s 옵션에 지정된 만큼 버퍼 크기를 늘릴 수 있으며 매우 긴 행이 발생되지 않도록 할 수 있다)

  • 예제
    # find /tmp -name core -type f -print | xargs /bin/rm -f
    (/tmp 디랙토리 아래 core라는 파일을 찾아 삭제)

    # fine /tmp -name core -type -f -print0 | xargs -O /bin/rm -f
    (공백이나 개행 문자가 들어가 있는 파일이나 디렉토리 이름을 올바르게 처리되도록 파일 이름을 처리하여 core 파일을 삭제)

    # find /tmp -depth -name core -type f -delete
    (위의 두 예제와 같은 내용이나 이번 예제가 더 효율적이다. rm 을 시작하기위해 fork와 exec를 사용하여 프로세스를 생성하지 않기 때문)

    # ls *.txt | xargs cat >> abc.txt
    (ls를 이용하여 text파일을 모두 읽어와 하나의 파일로 병합한다)

    # ls | grep “*.bak” | xargs cp /home/bak_file -> X
    위와 같이 명령을 실행하면 오류가 발생한다. 출력값이 cp 명령에서 맨끝이 아니라 중간에 인자로 들어가기 때문이다. 이럴 경우 -i(-I) 옵션을사용하여 출력값을 어느위치에서 인자로 사용할 것인지 지정해주면 된다.
    # ls | grep “*.bak” | xargs -I{} cp {} /home/bak_file -> O 또는 # ls | grep “*.bak” | xargs -i cp {} /home/bak_file -> O
    (소문자 i를 사용하는 방식이 옛날 방식이므로 대문자 I를 사용한것을 권장한다, -i에는 기본값을 지정하는 것이 없다)

    # find ~/ -type f | grep -H “*.txt$” | xargs grep -H “abcd”
    (디렉토리에서 txt파일을 우선 찾은 다음 이름에 abcd를 포함하는 파일을 또 찾음)

    # cat url-list.txt | xargs wget -c
    (파일안에 url이 있을 경우 해당 인자들을 모두 wget으로 넘겨 다운받는다)

    # find / -name “*.jpg” -type -f -print | xargs tar -cvzf images.tar.gz
    (모든 jpg파일을 찾아 images.tar.gz로 압축) 

    # ls *.jpg | xargs -n1 -I{} cp {} /external-hard-drive/tmp
    (ls 로 출력된 모든 이미지를 하나씩 인자로 받아 외장하드로 복사)

   


반응형

'Linux' 카테고리의 다른 글

Linux Memory 재할당  (0) 2018.08.08
Linux rsync  (0) 2018.08.08
Linux Multipath Error  (0) 2018.08.08
Linux FTP 구성  (0) 2018.08.08
Linux ipmitool (openimpi)  (0) 2018.08.08
728x90
반응형
원인 및 증상

- Rhel 6.1 ~ 6.4에서 발생하는 문제로 기존에 5개의 LUN을 사용하다가 2개를 Online 상태 중에 제거하게 되었을때 Storage Volume 정보가 duplicate PV’s and Couldn't find device with uuid 와 같이 표시
- 이 문제는 rhel 6.5 버전부터는 픽스된 문제
- Rhel 6.1 ~ 6.4 버전까지는 dracut을 이용하여 initramfs 파일을 생성하게 되면 /etc/lvm/* 정보와 /etc/multipathd/* 정보가 포함되어 발생되는 문제로 기존 LUN 5개 상태일대의 /etc/multipathd/* 정보로 부팅을 시도하지만 실제 3개의 LUN만 있다 보니 Storage Volume에 대한 LVM, Multipath 정보가 맞지 않아 발생하는 문제


해결

- 기존 OS 설치 후 생성된 initramfs 파일로 부팅 후 dracut을 이용하여 새로운  initramfs 파일을 생성하고 재부팅
- 또는 /etc/dracut.conf 파일에 omit_dracutmodules+=”multipath” 를 추가 후 initramfs를 생성하여야 한다.
- darcut을 할때 -H 옵션도 검토 대상 

(-H, –hostonly Host-Only mode: Install only what is needed for booting the local host instead of a generic host.) 


반응형

'Linux' 카테고리의 다른 글

Linux rsync  (0) 2018.08.08
Linux xargs  (0) 2018.08.08
Linux FTP 구성  (0) 2018.08.08
Linux ipmitool (openimpi)  (0) 2018.08.08
Linux VLAN Create  (0) 2018.08.08
728x90
반응형
FTP(File Transfer Protocol)


◆ 원격 서버에 파일을 주고 받을 때 사용하는 인터넷 통신 규약


◆ FTP 프로그램은 그 원격 서버에 접속하여 파일을 업로드/다운로드하기 위하여 사용하는 프로그램


◆ FTP 계정에 접속할 때는 FTP 주소, FTP ID, FTP 암호의 세 가지 정보가 필요


  20TCP FTP (파일 전송 프로토콜) - 데이터 포트공식


21TCP FTP - 제어 포트


FTP Mode

Active 모드: FTP 클라이언트가 FTP 서버로 접속을 시도할 때 TCP 21번 포트를 이용하여 접속이 이루어지고, 데이터를 수신하는 경우에는 TCP 20번 포트를 이용 (기본 설정)

Passive 모드: 클라이언트가 서버로 접속을 시도할 때 PASV 명령어로 표준 포트인 TCP 21번 포트를 이용하여 접속이 이루어지지만 데이터를 수신하기 위해
                       1024-5000번 포트 중 하나를 새롭게 열어서 클라이언트가 수신한다. 방화벽을 사용하는 경우 기본 FTP 포트(20, 21) 외 다른 포트를 사용하여
                       FTP 사이트를 서비스할 때FTP 클라이언트는 접속 시 Passive 모드로 접속







FTP 설치 및 설정


1. # yum -y install vsftpd ftp

  •  vsftpd는 리눅스 운영체제에서 사용하는 ftp 데몬


2. # vi /etc/vsftpd/vsftpd.conf
  • anoymous_enable=NO
    -> 익명의 사용자 접속 허용 여부
  • local_enble=YES
    -> 로컬 계정 사용자의 접속 허용 여부
  • write_enable=YES
    -> write 명령어 허용 여부
  • local_umask=022
    -> 로컬 계정 사용자용 umask
  • xferlog_enable=YES
    -> 파일 전송 로그를 남길것인지 여부
  • xferlog_file=/var/log/xgerlog (기본경로로 이미 설정되어 있음)
    -> 파일 전송 로그 경로 및 파일명
  • xferlog_std_format=YES (선택, 안해도 상관 없음)
    -> xferlogㅍ 표준 포멧으로 로그를 남길지 여부
  • chroot_local_user=YES
    -> 홈 폴더에서 벗어날수 없도록 할지 여부
  • chroot_list_enable=YES
    -> 사용자 홈 디렉토리에서 상위로 접근하지 못하도록 하기위한 설정
  • chroot_list_file=/etc/vsftpd/chroot_list (기본값으로 설정이나 사용은 선택)
    -> 해당파일의 사용여부를 설정하고 사용시 파일의 경로를 설정
  • pam_serivce_name=vsftpd
    ->  PAM 파일명을 지정
  • pasv_enable=YES   (passive mode 사용시에만 설정)
    -> 액티브 모드로 사용할시 no & 삭제
3. ftp 계정 설정 및 패스워드 설정
 
# useradd -d /ftp_data/data (ftp계정이 사용할 home 폴더 설정) ftp_test (계정명)
-> /ftp_data/data 로 지정하려면 미리 디렉토리가 생성되어 있어함
# passwd ftp_test
  
4. 방화벽 (선택) -> 네트워크 단에서 방화벽을 사용하면 설정할 필요가 없다. 대부분 이 부분은 패스한다.
  •  centos에서의 방화벽의 기본 정책은 모두 막아버리기 때문에 ftp서버에 사용되는 포트 20, 21 open
 # vi /etc/sysconfig/iptables
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
  • 만약 방화벽이 설정을 하였다면 서비스를 재시작 해주어야 적용
 
5. 서비스 시작
# systemctl start vsftpd (rhel 7)
# service vsftpd start (rhel 6)
6. 부팅 서비스 데몬 등록
# systemctl enable vsftpd (rhel 7)
# chkconfig —level 2345 vsftpd on (rhel 6)
  
7. 네트워크 포트 확인
  •  vsftpd ::21 포트확인
    # netstat -nbtlp |   grep -i vsftp
  
8. ftp 실행
 방법 1.
 
 ①  [root@localhost ~]# ftp            // ftp 실행
 ②  ftp> open                               // ftp open
 ③  (to) 해당 IP                            // open 하고자 하는 ip 입력
  
방법 2.
 
 ①  [root@localhost ~]# ftp
 ②  ftp> open 해당 IP                    //open 과 IP를 같이 써줌.





 기타 오류 및 정보확인


1. 500 OOPS: could not open chroot() list file:/etc/vsftpd/chroot_list

참조 : http://uiandwe.tistory.com/160

vi /etc/vsftpd/chroot_list (FTP 로그인할 계정을 등록)


2. ftp: connect: No route to host 

참조 : http://vstu77.blog.me/120050132415

리눅스에서 ftp를 사용할 때에 ftp: connect: No route to host 는 메시지가 나올 때가 있다.

이럴 경우에는 host server 의 iptable을 살펴 보아야 한다. 사용 하지 않을 거면 iptables 를 stop 한다
#/etc/init.d/iptables stop
그 후
500 OOPS : cannot change directory:/root
500 OOPS : child died
라고 나오는 경우 아래와 같이 입력한다.
# setsebool -P ftp_home_dir=1


3. vsftp에서 500 OOPS: cannot change directory 오류가 나올 때
참조 : http://opencode.co.kr/bbs/board.php?bo_table=linux_tips&wr_id=27
/etc/vsftpd/vsftp.conf를 수정했는데도 불구하고 500 애러가 나오면서 접속이 안될때는 SELinux 때문이라고 합니다. 

# setsebool -P ftp_home_dir=1
이렇게 하면, ftp directory에 대한 접근을 허가 하게된다. "-P"는 Rebooting 될더라도 값을 저장하여, 정상적으로 동작 하도록 한다. 

vsftpd(vsftp 데몬)의 상태를 보기

# service vsftpd status

iptables(방화벽)의 상태를 보기

# service iptables status


4. vsftpd.conf 파일의 정보
참조 : http://kch1183.blog.me/50099324984


5. CentOS. FTP 총정리
참조 : http://blog.naver.com/newkyh00?Redirect=Log&logNo=30111155337


6. 발생 가능한 오류 
- OOPS: cannot change directory:/home/ueco
-> # setsebool -P ftp_home_dir=1 명령으로 해결

- OOPS: could not read chroot() list file:/home/ueco
-> vsftp.conf설정에서 chroot관련 설정을 모두 주석처리함

- OOPS: 500 OOPS: child died
디렉터리 목록을 획득할 수 없습니다.
Entering Passive Mode (10,250,114,243,21,35).

->컴퓨터의 FTP툴에서 Passive 모드를 비활성화해서 접속함

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

vsftpd.conf에서
chroot_local_user=NO
allow_writeable_chroot=YES 
로 변경한다


반응형

'Linux' 카테고리의 다른 글

Linux xargs  (0) 2018.08.08
Linux Multipath Error  (0) 2018.08.08
Linux ipmitool (openimpi)  (0) 2018.08.08
Linux VLAN Create  (0) 2018.08.08
Linux ethtool  (0) 2018.08.08
728x90
반응형
IPMI 란?


- IPMI란 서버 관리를 위한 관리 인터페이스로 원격지나 로컬서버의 상태를 파악하고 제어할 수 있는 기능을 제공

- 요구사항 : IPMI version 1.5 이상을 지원하는 메인보드, OpenIPMI, IPMI 드라이버를 제공하는 커널


설치

1) 소스로 설치하기

ipmitool에서 소스를 다운받아 압축을 해제 후
# ./configure; make; make install


2) yum을 이용한 설치

# yum installl -y ipmitool


커널에 드라이버 올리기

- 필요한 모듈 : ipmi_devintf, ipmi_si, ipmi_msghadler

# ipmi_devintf
# ipmi_si
# ipmi_msghadler (위의 2개 모듈에 대한 의존성을 가진다)


※ /dev/ipmi0 또는 /dev/ipmi/0을 못찾는다는 error가 나온다면 커널에 ipmi 관련 모듈이 안올라가 있는 것


ipmi service 시작

# service ipmievd start (Rhel 6 version)
# systemctl start ipmievd (Rhel 7 version)





IPMI 사용법


# ipmitool


  • 옵션

-I intf : Interface to use(어떤 인터페이스를 통해서 서버에 접속할 것인지다.
           인터페이스의 종류는 open,imb,lan,lanplus 를 제공하고 있으며  open은
           리눅스의 OpenIPMI 인터페이스를 사용하겠다는 것이며 imb는 Intel IMB interface,
           lan 은 IPMI v1.5 Lan interface, lanplus는 IPMI v2.0 interface 다)

-H hostname : 원격지의 서버의 상태나 제어를 할때 적어준다

-p port : 해당 포트로 접속

-U username : 원격지에 접속할때 사용하는 유저명


  • 명령

lan : lan 채널에 대한 설정을 할수 있다.

chassis : 새시(보통 케이스와 파워) 상태와 전원을 관리할 수 있다.

power : 새시 명령의 단축 명령이다.

sdr : Print Sensor Data Repository entries and readings(메인보드에 있는 센서와 데이터를 읽어 들일때 사용한다.

sensor : 좀더 정확한 센서 정보를 제공해 준다.

fru : Print built-in FRU and scan SDR for FRU locators(Fiele replace unit의 약자인데 보통 메모리 정보나 메인보드 정보를 제공해 준다.)

sel : Print System Event Log (SEL)(시스템 event 로그를 보여준다.보통 서버가 하드웨어적으로 문제가 발생하면 발생하는데 하드웨어 점검할때 유용하게 쓰일 수 있다.)

sol : Serial-over-LAN 설정

isol : IPMIv1.5 Serial-over-LAN 설정

user : 유저 설정(원격에서 접속할 수 있는 유저를 생성하거나 권한을 부여한다.)

channel : 채널 설정(각가의 채널별로 접속하는 방식들이 차이가 난다. 예를 들면 1번 채널은 serial 접속,2번채널은 lan 접속등등)



  • 사용 예제

- 서버 파워 상태 및 제어
# ipmitool -I open chassis status

- 서버 센서 모니터링
# ipmitool -I open sdr

- 시스템 이벤트 로그 보기
# ipmitool -I open sel list

시스템 이벤트 정보 보기, 사용량이나 마지막으로 이벤트 로그 발생시점등등
# ipmitool -I open sel info 

이벤트 로그 지우기
# ipmitool -I open sel clear 

이벤트로그번호(이벤트 지우기)
# ipmitool -I open sel delete 


  • 사용 예제 - MGMT IP 변경

# ipmitool lan print 1
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : MD2 MD5
: User : MD2 MD5
: Operator : MD2 MD5
: Admin : MD2 MD5
: OEM :
IP Address Source : Static Address <-- static
IP Address : 192.168.0.120 <-- 셋팅 전
Subnet Mask : 255.255.255.0
MAC Address : ??:??:c4:ee:??:??
SNMP Community String : public
IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled
Default Gateway IP : 192.168.0.1
Default Gateway MAC : 00:00:00:00:00:00

# ipmitool lan set 1 ipsrc static <-- DHCP로 되어 있으면 아래 명령 자체가 먹지 않는다. 보통 static으로 이미 되어 있음.

# ipmitool lan set 1 ipaddr 10.10.20.120
Setting LAN IP Address to 10.10.20.120

# ipmitool lan set 1 netmask 255.255.255.0
Setting LAN Subnet Mask to 255.255.255.0

# ipmitool lan set 1 defgw ipaddr 10.10.20.1
Setting LAN Default Gateway IP to 10.10.20.1

# ipmitool lan set 1 access on

# ipmitool lan print 1
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : MD2 MD5
: User : MD2 MD5
: Operator : MD2 MD5
: Admin : MD2 MD5
: OEM :
IP Address Source : Static Address
IP Address : 10.10.20.120 <-- 셋팅 후
Subnet Mask : 255.255.255.0
MAC Address : ??:??:c4:ee:??:??
SNMP Community String : public
IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled
Default Gateway IP : 10.10.20.1 <-- 셋팅 후
Default Gateway MAC : 00:00:00:00:00:00





반응형

'Linux' 카테고리의 다른 글

Linux Multipath Error  (0) 2018.08.08
Linux FTP 구성  (0) 2018.08.08
Linux VLAN Create  (0) 2018.08.08
Linux ethtool  (0) 2018.08.08
Linux eth0이 안되고 eth1로 네트워크가 잡히는 경우  (0) 2018.08.08
728x90
반응형



/etc/sysconfig/network-scripts/ 아래에는 기본적으로 network과 관련된 설정파일이 있는데 이곳에서 아래와 같이 브릿지 설정파일을 추가하고 기존 eth0 또는 ens0 파일을 수정해야한다.

ifcfg-br1
DEVICE=br1
TYPE=Bridge
IPADDR=192.168.10.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no

ifcfg-ens1
DEVICE=enp0s25.1
BOOTPROTO=none
ONBOOT=yes
VLAN=yes
NM_CONTROLLED=no
BRIDGE=br1 

ifcfg-br2
DEVICE=br2
TYPE=Bridge
IPADDR=192.168.20.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no




ifcfg-ens2
DEVICE=enp0s25.2
BOOTPROTO=none
ONBOOT=yes
VLAN=yes
NM_CONTROLLED=no
BRIDGE=br2

이제 우리는 아래와 같이 IP를 할당 받을 수 있다.


반응형

+ Recent posts