반응형

🧩 DR 구성 환경에서 발생한 디스크 인식 문제 대응

DR(Disaster Recovery) 구성된 VM위에 Linux 서버에서 DR 스토리지를 Split한 뒤,
간헐적으로 디스크가 인식되지 않는 버그가 발생했다.

이 문제를 해결하기 위해,
DR 복제 중인 디스크를 제거한 후 rescan 명령으로 재인식시키는 자동화 스크립트를 작성하였다.
아래의 쉘 스크립트는 RDM(Raw Device Mapping) 형태로 연결된 IBM 스토리지 디스크를
자동으로 삭제 후 재인식시키는 역할을 수행한다.

 

디스크 재 인식 쉘 

#!/bin/bash

### disk info ###
RDM_LIST="lsscsi | grep IBM"
RDM_DISK='lsscsi | grep IBM | awk '{print $6}' | cut -c 6-8'

#1. List RDM Disk
echo "### 1. RDM Disk List ###"
lsscsi | grep IBM

#2 Delete RDM Disk
echo "###2. Delete RDM Disk info ###"
for RDM_DISK in $RDM_DISK
do
echo "1" > /sys/block/$RDM_DISK/device/delete;
done


#3. After Disk List
echo "### 3. After Delete RDM Disk ###"
lsscsi

#4. Re-attach RDM DISK
echo "### 4. Re-attach RDM DISK ###"

/bin/scsi-rescan -a

#5. Final RDM disk list
echo "### 5. Final RDM DISK info ###"
lsscsi | grep IBM

echo "FINISH!"
반응형
반응형

서버 네트워크 환경에서 **이중화(High Availability)**와 **부하 분산(Load Balancing)**은 필수 요소입니다.
리눅스에서는 이를 구현하기 위해 BondingTeaming 두 가지 방법을 제공합니다.
그렇다면, 어떤 차이가 있으며, 어떤 상황에서 선택해야 할까요?
오늘은 Red Hat Enterprise Linux(RHEL) 7, 8, 9 환경을 기준으로 Bonding과 Teaming의 차이점을 자세히 비교해보겠습니다.


1️⃣ Bonding과 Teaming 개요

📌 Bonding이란?

Bonding은 여러 개의 네트워크 인터페이스를 하나의 논리적 인터페이스로 묶는 기술입니다.
주로 커널 모듈(kernel module)에서 동작하며, 다양한 모드로 설정할 수 있습니다.

특징:

  • 커널에서 직접 관리하여 안정성이 높습니다.
  • 다양한 모드를 제공하여 유연한 설정이 가능합니다.
  • 네트워크 장비와의 호환성이 뛰어납니다.
  • 오래된 기술로 대부분의 리눅스 배포판에서 지원됩니다.

📌 Teaming이란?

Teaming은 Bonding보다 새로운 기술로, 사용자 공간(user space)에서 관리되는 더 유연한 방식입니다.
RHEL 7부터 공식적으로 지원되기 시작했습니다.

특징:

  • 사용자 공간에서 관리되어 동적인 설정이 가능합니다.
  • Bonding보다 빠른 장애 감지 및 전환을 제공합니다.
  • JSON 기반의 설정을 지원하여 설정이 더 직관적입니다.
  • NetworkManager와의 통합이 용이합니다.

2️⃣ Bonding과 Teaming의 차이점

비교 항목BondingTeaming

동작 방식 커널 모듈에서 동작 사용자 공간에서 동작
설정 방법 ifcfg 파일을 통한 설정 nmcli 또는 teamd를 통한 설정
지원 모드 7가지 모드 제공 다양한 러너 모드 제공
성능 안정적이나 유연성 제한 빠른 장애 감지 및 전환
유연성 정적 설정 동적 설정 가능
지원 버전 모든 RHEL 버전 RHEL 7 이상
장점 전통적이고 안정적 빠른 장애 감지 및 유연한 설정
단점 설정 복잡, 유연성 제한 최신 기술로 일부 환경에서 미지원 가능

3️⃣ Bonding과 Teaming 설정 방법

🔹 Bonding 설정 예제 (RHEL 7, 8, 9 기준)

1. Bonding 모듈 활성화:

modprobe bonding

2. Bonding 인터페이스 설정 파일 생성:

vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"

3. 물리 인터페이스 설정:

vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NAME=eth1
MASTER=bond0
SLAVE=yes
ONBOOT=yes

4. 네트워크 재시작 및 확인:

systemctl restart network
cat /proc/net/bonding/bond0

🔹 Teaming 설정 예제 (RHEL 7, 8, 9 기준)

1. Teaming 인터페이스 생성:

nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'

2. 물리 인터페이스를 Teaming에 추가:

nmcli connection add type ethernet con-name team0-port1 ifname eth1 master team0
nmcli connection add type ethernet con-name team0-port2 ifname eth2 master team0

3. IP 주소 설정:

nmcli connection modify team0 ipv4.addresses 192.168.1.100/24 ipv4.method manual

4. 연결 활성화:

nmcli connection up team0

5. 상태 확인:

teamdctl team0 state

4️⃣ 어떤 경우에 Bonding과 Teaming을 선택해야 할까?

Bonding이 적합한 경우:

  • 네트워크 장비와의 호환성이 중요한 경우
  • 기존의 RHEL 6 이하 환경에서 적용해야 하는 경우
  • 단순하고 안정적인 네트워크 이중화가 필요한 경우

Teaming이 적합한 경우:

  • RHEL 7 이상을 사용하며, 최신 기술을 적용하고 싶은 경우
  • 빠른 장애 감지 및 동적 설정이 필요한 경우
  • JSON 기반 설정을 활용하여 유연하게 관리하고 싶은 경우

🎯 결론: Bonding vs Teaming, 어떤 것을 선택해야 할까?

Bonding과 Teaming 모두 네트워크 이중화와 부하 분산을 위한 강력한 기술입니다.
다만, 기존의 안정성을 원한다면 Bonding, 더 유연하고 빠른 설정이 필요하다면 Teaming을 선택하면 됩니다.

  • RHEL 6 이하: Bonding이 적합
  • RHEL 7 이상: Teaming이 더 효율적

최근에는 Teaming이 점점 더 많이 사용되는 추세이므로,
새로운 환경을 구축할 때는 Teaming을 고려하는 것이 유리합니다.

📌 더 자세한 내용은 공식 문서를 참고하세요!
🔗 Red Hat 공식 네트워크 설정 가이드


📢 관련 해시태그

#Teaming #Bonding #네트워크이중화 #서버관리 #RHEL7 #RHEL8 #RHEL9 #Linux #네트워크설정

반응형
반응형

IT 인프라에서 성능 최적화는 비용 절감과 서비스 안정성을 위해 매우 중요한 과제입니다. 특히 대규모 시스템 환경에서는 자원의 효율적 활용이 핵심입니다. 이번 글에서는 Linux, Windows Server, AIX의 성능을 최적화하는 방법과 실무에서 바로 적용할 수 있는 팁을 소개합니다.


1. Linux 성능 최적화

1) CPU 및 메모리 관리

  • top, htop 명령어 사용: 시스템 리소스 사용 현황을 실시간으로 모니터링해 성능 병목을 파악합니다.
     
  • swap 공간 관리: 메모리 부족 시 사용하는 swap을 적절히 설정해 성능 저하를 방지합니다.
top  # 기본 리소스 사용 현황 확인
htop  # 더 시각적으로 리소스 사용 현황 파악

2) 디스크 I/O 최적화

  • iostat: 디스크 입출력 속도를 모니터링해 디스크 병목 현상을 분석합니다.
    iostat -x 5  # 디스크 사용률과 I/O 상태 실시간 모니터링
  • 파일시스템 튜닝: noatime 옵션을 사용해 파일 접근 시간을 기록하지 않음으로써 디스크 I/O를 줄입니다.
     
mount -o remount,noatime /  # noatime 옵션 활성화

 

3) 네트워크 최적화

  • sysctl 설정: 네트워크 성능을 향상시키기 위해 커널 매개변수를 조정합니다.
     
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216

실무 팁:
자동화 도구인 Ansible이나 Puppet을 사용해 성능 최적화 설정을 대규모로 배포할 수 있습니다.

 


2. Windows Server 성능 최적화

1) CPU 및 메모리 성능 관리

  • 작업 관리자 사용: 실시간으로 CPU, 메모리, 디스크, 네트워크 사용량을 모니터링하고, 리소스를 많이 사용하는 프로세스를 확인합니다.
  • RAM 최적화: 페이지 파일 크기를 최적화하고, 물리적 메모리를 확장해 성능을 개선합니다.
    • 페이지 파일 설정: Control Panel > System > Advanced System Settings > Performance에서 조정 가능합니다.

2) 디스크 최적화

  • 디스크 조각 모음: defrag 명령어를 사용해 디스크 조각화를 줄여 I/O 성능을 향상시킵니다.
    defrag C: /O  # 최적화 및 조각 모음 실행
  • 스토리지 관리: 디스크 공간을 주기적으로 점검하고 불필요한 데이터를 삭제해 여유 공간을 확보합니다.

3) 네트워크 성능 최적화

  • QoS 설정: 네트워크 트래픽 우선순위를 설정해 중요한 서비스의 대역폭을 보장합니다. Group Policy Editor에서 설정할 수 있습니다.
  • TCP 설정 최적화: 레지스트리에서 TCP/IP 관련 설정을 조정해 네트워크 성능을 향상시킵니다.

실무 팁:
Windows PowerShell을 사용해 성능 점검과 최적화 작업을 자동화하는 스크립트를 작성해보세요.

 


 

추가 팁: 성능 최적화를 위한 모니터링 도구 소개

1) Prometheus 및 Grafana

  • 설명: 오픈 소스 모니터링 툴로, 시스템 리소스 사용량을 시각화할 수 있습니다. 대시보드를 구성해 실시간으로 성능 상태를 확인하세요.

2) Nagios

  • 설명: 서버 및 네트워크를 모니터링하고, 문제가 발생할 경우 알림을 보내주는 도구입니다. 주요 서비스의 가용성을 관리하는 데 유용합니다.

결론:

시스템 성능 최적화는 운영 환경을 안정적으로 유지하기 위해 필수적인 작업입니다. 이 글에서 소개한 성능 최적화 방법과 실무 팁을 참고해 시스템의 효율성을 극대화해 보세요. 앞으로도 지속적인 모니터링과 최적화 작업을 통해 더욱 안정적인 인프라를 구축할 수 있습니다.

반응형
반응형

서버 보안은 기업의 IT 인프라에서 가장 중요한 요소 중 하나입니다. 오늘날 점점 증가하는 보안 위협 속에서 시스템 관리자는 서버의 보안 설정을 강화해야 할 책임이 있습니다. 이번 글에서는 Linux, Windows Server, AIX의 보안 설정을 단계별로 설명하고 실무에서 바로 활용할 수 있는 팁을 제공하겠습니다.

 


1. Linux 보안 강화 설정

1) SSH 보안

  • 기본 포트 변경: 기본 포트 22는 공격에 가장 많이 노출됩니다. SSH 설정 파일(/etc/ssh/sshd_config)에서 포트를 변경해보세요.
Port 2222  # 예: 2222로 포트 변경
  • 루트 로그인 차단: 루트 계정으로 직접 로그인하는 것은 보안 위험을 높입니다. 설정 파일에서 PermitRootLogin을 no로 변경해 차단합니다.
PermitRootLogin no
  • 키 기반 인증 설정: 비밀번호 대신 공개 키를 사용해 보안성을 높입니다. /etc/ssh/sshd_config에서 PasswordAuthentication을 no로 설정하세요.
PasswordAuthentication no

2) 방화벽 설정

  • UFW: Ubuntu 기반 시스템에서 쉽게 사용할 수 있는 방화벽 도구입니다. 기본 규칙을 설정하고 필요한 포트만 허용하세요.
sudo ufw enable
sudo ufw allow 80/tcp  # HTTP 포트 허용
sudo ufw allow 443/tcp  # HTTPS 포트 허용

 

  • firewalld: RHEL 계열에서 사용합니다. 서비스와 영역을 설정해 보다 세분화된 보안 정책을 적용할 수 있습니다.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

 

3) 로그 모니터링

  • 로그 관리: journalctl 명령을 사용해 시스템 로그를 점검하고, 자동화된 알림을 설정해 중요한 로그 이벤트를 실시간으로 감시합니다.
journalctl -xe  # 최근 에러 로그 확인

실무 팁:
정기적으로 시스템을 업데이트하고 불필요한 서비스는 비활성화해 공격 표면을 줄이세요. cron을 이용해 자동 패치 스크립트를 작성하는 것도 좋습니다.


2. Windows Server 보안 강화

1) Active Directory 보안

  • 권한 최소화: 사용자 계정에 최소 권한만 부여해 보안을 강화합니다. 그룹 정책(GPO)을 활용해 사용자와 컴퓨터에 대한 정책을 설정합니다.
  • 감사 정책 설정: 보안 로그를 모니터링하고 비정상적인 활동을 감지합니다. gpedit.msc에서 로컬 보안 정책을 구성하세요.
    • 로그온 실패: 실패한 로그인 시도를 기록해 무차별 공격을 감지합니다.
    • 계정 변경: 사용자 계정에 대한 변경 내역을 모니터링합니다.

2) WSUS 설정

  • Windows Update Server 관리: WSUS(Windows Server Update Services)를 사용해 보안 패치를 중앙에서 관리합니다. 모든 클라이언트 시스템이 최신 보안 업데이트를 적용하도록 설정합니다.
  • 자동 승인: 중요 업데이트를 자동 승인하도록 설정해 신속히 패치를 적용합니다.

3) BitLocker

  • 드라이브 암호화: BitLocker를 사용해 디스크 전체를 암호화하고 물리적인 데이터 유출을 방지합니다. TPM(신뢰할 수 있는 플랫폼 모듈)을 사용해 추가 보안을 설정하세요.
    • BitLocker 활성화: Control Panel > System and Security > BitLocker Drive Encryption에서 설정할 수 있습니다.

4) RDP 보안

  • 포트 변경: RDP의 기본 포트 3389를 변경해 공격을 방지합니다. 레지스트리 편집기를 사용해 포트를 변경하세요.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber
  • 네트워크 레벨 인증: RDP 연결 시 추가 인증 단계를 추가해 보안을 강화합니다. 서버 관리자에서 설정할 수 있습니다.

실무 팁:
Windows Defender와 같은 내장 보안 솔루션을 활성화하고, EDR 솔루션을 도입해 실시간으로 위협을 탐지하세요. PowerShell을 이용해 자동화된 보안 점검 스크립트를 실행하는 것도 추천합니다.


추가 팁: IT 보안에 대한 최신 동향

1) 제로 트러스트(Zero Trust) 보안 모델

  • 설명: 모든 접근을 신뢰하지 않고 검증하는 보안 모델입니다. 네트워크 내외부를 불문하고 모든 요청을 검증해 보안을 강화합니다.
  • 도입 방법: MFA(다중 인증)와 마이크로세그먼테이션을 사용해 네트워크를 보호하세요.

2) 보안 자동화

  • Ansible: 보안 설정을 자동화하고 반복 작업을 줄일 수 있습니다. SSH 키 배포, 방화벽 설정 등을 자동화할 수 있습니다.
  • 실행 예시: Ansible Playbook을 사용해 여러 서버의 보안 설정을 동시에 관리하세요.

3) 클라우드 보안

  • 온프레미스 vs. 클라우드 보안: 두 환경에서 보안 요구 사항이 다릅니다. 클라우드 환경에서는 CSP의 보안 도구를 활용하고, 데이터 암호화를 필수로 적용하세요.
  •  

결론:

이 글에서 설명한 보안 설정을 활용해 여러분의 시스템을 더욱 안전하게 보호할 수 있습니다. 각 서버에 적합한 보안 정책을 적용하고, 정기적인 점검과 모니터링으로 위협을 최소화하세요. 앞으로도 지속적인 보안 개선을 통해 IT 인프라를 안전하게 운영하시길 바랍니다.

반응형
반응형

1. heartbeat용 vlan 추가

 

  뉴타닉스 -> vm -> HA 설정할 vm 더블클릭

  heartbeat 통신 할 vlan 2개 추가  ※ vlan 추가 시 iscsi 통신 할 vlan 도 확인 (ex iscsi ip 대역의 vlan이 111 이면 해당 vm 서버에 vlan111 추가)

 

2. 공유 파일 시스템 생성 및 할당

iscsi 네임 설정

# vi /etc/iscsi/initiatorname.iscsi

  

        iscsi deamon 상태 확인

# systemctl list-unit-files |grep -i iscsi

iscsi-shutdown.service                        static  

iscsi.service                                 enabled 

iscsid.service                                disabled

iscsiuio.service                              disabled

iscsid.socket                                 enabled 

iscsiuio.socket                               enabled 

 

iscsi.service, iscsid.service enable 및 재시작

# systemctl enable iscsid.service

# systemctl restart iscsi

 

뉴타닉스에서 disk 할당

 뉴타닉스 접속 -> storage에서 quorum disk 추가 및 공유 파일시스템 할당 후 방금 설정 한 iscsi 네임으로 서버 추가

 

뉴타닉스와 서버간 iscsi 디스크 찾기 (192.168.111.58 간 네트워크 통신이 가능해야 한다.)

# iscsiadm -m discovery -t st -p 192.168.111.58

192.168.111.58:3260,1 iqn.2010-06.com.nutanix:kfpnfws-cls02-79d431d7-a644-4806-8eb2-1515b8fa9193-tgt0

192.168.111.58:3260,1 iqn.2010-06.com.nutanix:kfpnfws-cls02-79d431d7-a644-4806-8eb2-1515b8fa9193-tgt1

192.168.111.58:3260,1 iqn.2010-06.com.nutanix:kfpnfws-cls02-79d431d7-a644-4806-8eb2-1515b8fa9193-tgt2

192.168.111.58:3260,1 iqn.2010-06.com.nutanix:kfpnfws-cls02-79d431d7-a644-4806-8eb2-1515b8fa9193-tgt3

 

iscsi 디스크 로그인  ( iscsiadm -m node -T [위에 iqn부터 -tgt0~3 까지 입력 -p 192.168.111.58 -l)

# iscsiadm -m node -T iqn.2010-06.com.nutanix:kfpnfws-cls02-79d431d7-a644-4806-8eb2-1515b8fa9193-tgt0 -p 192.168.111.58 -l

 

확인 

# lsblk

# iscsi -i

 

3. anti affinity 설정

 

anti affnity 란 ha설정을 한 vm01 vm02가 한 node에서 작동하지 않게 하는 설정

node가 다운되더라도 다른 노트에 vm을 배치하여 이중화 하는 작업

 

그룹생성

$ vm_group.create kfpnfws-cls02-anti-affinity        

그룹에 vmlist 할당

$ vm_group.add_vms kfpnfws-cls02-anti-affinity vm_list=kfpnfws03,kfpnfws04

확인

$ vm_group.list_vms kfpnfws-cls02-anti-affinity

적용

$ vm_group.antiaffinity_set kfpnfws-cls02-anti-affinity

반응형

+ Recent posts