본문 바로가기 대메뉴 바로가기

테크니컬 스토리

아이티마야의 새로운 기술 뉴스를 만나보세요.
기술자료
윈도우(Windows)와 파일 공유를 위한 삼바(Samba) span{vertical-align: inherit;} li span{vertical-align: middle;} p span{vertical-align: top;} 삼바(SAMBA) 란? 윈도우(Windows)에서 파일 공유를 위한 삼바(Samba) 삼바(SAMBA) 란? 삼바(Samba)는 마이크로소프트와 인텔에서 개발한 SMB(Server Message Block) 네트워크 프로토콜을 이용해 윈도우와 유닉스 계열의 운영체제나 다른 시스템 간의 자원을 공유할 수 있도록 만든 프로그램이다. 삼바는 윈도우 운영체제를 사용하는 PC에서 Linux 또는 UNIX 서버에서 접속하여 디렉터리 및 파일 공유, 프린터, CD-ROM, DVD-ROM, USB 공유하여 사용할 수 있도록 해준다. 리눅스에 삼바를 설치하게 되면 리눅스가 서버, 윈도우가 클라이언트가 되는 것이다. (반대도 가능하다) 삼바는 SMB 프로토콜을 이용해서 작동하기 때문에 해당 프로토콜이 설치된 시스템만 사용할 수 있다. 현재 SMB 프로토콜은 유닉스와 윈도우 환경을 동시에 지원하는 CIFS(Common Internet File System)로 확장되었다. SMB : Server Message Block, 마이크로소프트사와 인텔이 윈도우 시스템이 다른 시스템의 디스크나 프린터와 같은 자원을 공유할 수 있도록 하기 위해 개발된 프로토콜 CIFS : Common Internet File System, 네트워크를 위한 SMB 파일 공유 프로토콜의 확장 버전 윈도우와 리눅스(유닉스) 환경을 동시에 지원하는 인터넷의 표준 파일 규약의 프로토콜 삼바(SAMBA) 설치 & 설정 삼바를 설치하고 설정하는 순서는 다음과 같다. 1. Samba 설치 2. 계정 등록 3. 공유 디렉토리 설정 4. 삼바 환경 추가 설정 5. 윈도우에서 삼바 설정 1.삼바 설치 sudo apt-get -y install samba 우분투 삼바 설치 yum -y install samba 센트 삼바 설치 2.삼바 계정 등록하기 sudo smbpasswd-a [사용자명] sudo pdbedit -L 삼바 서버에 등록된 유저를 확인 sudo pdbedit -L -v ※ smbpasswd 명령어 리눅스의 패스워드 및 전반적인 사용자 수정 정보를 담당하는 passwd 명령어의 삼바 버전이라고 보면 된다. 삼바 사용자를 생성 및 삭제, 패스워드 변경, 활성 및 비활성화 등 전체적인 관련 정보를 변경한다. 3.공유 디렉터리 생성 sudo mkdir /samba sudo chmod 777 /samba 권한 열기 4.삼바 환경 설정 삼바 환경 설정 파일 위치 /etc/samba/smb.conf 삼바 환경 설정을 위한 세부 절차 이 과정에서는 필요한 설정 파일의 수정, 필요한 패키지의 설치 및 설정, 그리고 삼바 서버의 테스트와 문제 해결에 필요한 도구와 기법에 대해 알아볼 것입니다. 삼바 환경 설정 파일 위치 /etc/samba/smb.conf 이 파일을 편집함으로써, 사용자 계정, 공유 디렉토리, 파일 권한 등 삼바 서버의 주요 기능을 설정하게 됩니다. 이때, 설정 파일을 편집할 때는 반드시 관리자 권한으로 실행해야 합니다. 설정 파일 편집: vi /etc/samba/smb.conf 위의 설정 파일을 오픈하면 기본적으로 [global], [printers], [home] 3가지 구역이 존재한다. 각 구역을 필요에 따라 설정해 줘야 한다. [global] : 삼바 서버 전체의 환경설정 [homes] : 각 사용자가 서버의 홈 디렉토리로 접근할 때 권한 [printers] : 프린터 관련 권한 이 중, [global] 섹션은 삼바 서버의 전체적인 동작을 설정하는 곳입니다. 여기에서는 네트워크 이름, 워크그룹, 보안 설정 등을 할 수 있습니다. 설정 파일에서 [ ]로 표기된 것은 각 Section을 나누기 위한 것이다. 위의 [global], [profiles], [printers] 등등 도 하나의 Section이다. 맨 하단으로 커서를 이동하고 새로운 섹션을 추가해 아래의 내용을 입력한다. [] [] 대괄호는 섹션을 정의, 윈도우에서 접근할 때 폴더 이름이 세션 안의 문자열로 보인다. 보이고 싶은 이름을 적으면 된다. comment = samba shared directory 간단한 공유 폴더 설명 path = 공유 디렉토리 경로 read only = no 읽기 전용 writable = yes 쓰기 전용 guest ok = no 다른 사용자들도 이용할 수 있도록 설정 valid user = user1 공유 디렉토리를 이용할 수 있는 사용자를 설정 create mask = 0777 파일 허가권 directory mask = 0777 디렉토리 허가권삼바 데몬 smdb 재시작 설정 변경 후 삼바 데몬 프로세스인 smbd를 재시작한다. 5.윈도우에서 삼바 설정 윈도우 폴더를 열고 왼쪽 사이드바에서 네트워크 탭을 오른쪽 클릭하여, [네트워크 드라이브 연결] 항목을 누른다. 폴더 : \\\\리눅스 서버 IP \\samba 공유 section 이름 입력 후 연결 시도 네트워크 드라이브를 연결했으면 자격 증명을 입력하라고 뜨는데, 위에서 삼바 계정 등록했었던 계정 아이디와 암호를 적어주면 된다. 정상적으로 섹션에 연결된 걸 볼 수 있다. smbstatus 삼바 서버와 클라이언트의 연결 상태 보기 연결 테스트 해보기 파일 공유를 확인할 수 있다. 2024.06.13
Linux 프로세스 관리 ps, kill 명령어에 대해 Linux 프로세스 관리 OS: Centos7 kill 명령어는 프로세스 관리와 제어에 사용되고, ps 명령어는 현재 실행 중인 프로세스에 대한 정보를 확인하는 데 사용됩니다. 이들 명령어는 주의를 기울여 사용해야 하며, 올바른 옵션 및 시그널을 선택하여 원하는 동작 및 정보를 얻을 수 있습니다. PS 명령어 옵션 값 ● -e : 시스템의 모든 프로세스 출력 ● -eM : 보안 정보 출력 ● a : 터미널과 연관된 프로세스 출력 ● -a : 터미널에 종속되지 않은 모든 프로세스를 출력 ● -A : 모든 프로세스 출력 ● -e : 커널 프로세스를 제외한 모든 프로세스 출력 ● -M : 64Bit 프로세스 출력 ● -u : 사용자 프로세스 출력 ● -U root -u root u : root로 실행되는 프로세스 출력 ● -x : 로그인 상태 동안 완료되지 않은 프로세스 출력 많이 사용하는 옵션 값 사용자, PID, 부모 프로세스(PID), 시작 시간, CPU 사용량 등이 포함됩니다. # ps -ef UID       PID     PPID  C  STIME  TTY          TIME  CMD roo         1           0  0  1월10    ?      00:00:06 /usr/lib/systemd/systemd --switc roo         2           0  0  1월10    ?      00:00:00 [kthreadd] root        4           2  0  1월10    ?      00:00:00 [kworker/0:0H] root        6           2  0  1월10    ?      00:00:00 [ksoftirqd/0] root        7           2  0  1월10    ?      00:00:00 [migration/0] 프로세스 간의 계층 구조를 트리 형식으로 출력합니다. # ps --forest 모든 프로세스의 계층 구조를 표시합니다. # ps -e --forest 특정 프로세스 ID(PID)에 대한 정보를 표시합니다. # ps -p (PID) 사용자, PID, CPU 사용량, 메모리 사용량, 상태 등의 정보를 제공합니다. # ps -l F   S   UID       PID      PPID   C   PRI   NI   ADDR   SZ   WCHAN   TTY          TIME  CMD 4   S      0    10325    10321   0    80    0    -     28886   do_wai    pts/1    00:00:00  bash 0   R      0    10405    10325   0    80    0    -     38331   -            pts/1    00:00:00  bash 특정 사용자(user name)의 프로세스만 표시합니다. # ps    - u (username) (예시) # ps    - u maya   PID TTY                    TIME CMD 모든 사용자의 모든 프로세스를 자세한 형식으로 표시합니다. # ps aux USER      PID   %CPU   %MEM      VSZ        RSS   TTY     STAT   START    TIME   COMMAND root          1     0.0        0.0    193672       6652   ?         Ss     1월10     0:06    /usr/lib/syst root          1     0.0        0.0            0           0    ?         S     2월10     0:00    [kthreadd] root          1     0.0        0.0            0           0    ?         S<   4월10     0:00    [kworker/0:0H root          1     0.0        0.0            0           0    ?         S     6월10     0:00    [ksoftirqd/0] 모든 프로세스 정보를 너비 제한 없이 출력합니다. # ps auxwww 프로세스 종료 방법입니다. 아래 명령어로 종료할 프로세스와 해당 PID를 확인합니다. # ps -efc or # ps -l or # ps 아래 명령어로 종료해 줍니다. # kill -9 (PID) 프로세스 이름으로 종료 방법 # pkill (프로세스 이름) 사용자의 모든 프로세스 종료 # pkill -u (유저명) 지원되는 시그널 목록 확인 방법 # kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+ 1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX 시그널 선택의 중요성 ● kill 명령어는 프로세스에 시그널을 보내어 동작합니다. 올바른 시그널을 선택하는 것이 중요합니다. 대부분의 경우, SIGTERM 시그널을 사용하여 프로세스에 종료 요청을 보냅니다. 만약 프로세스가 종료하지 않는다면, SIGKILL 시그널을 사용하여 강제 종료시킬 수 있습니다. ● 올바른 프로세스 ID(PID)를 사용해야 합니다. 잘못된 PID를 입력하면 다른 프로세스가 종료될 수 있으므로 주의가 필요합니다. 2024.05.08
Linux Log 확인 방법 Linux Log 관리 방법 Linux Log 확인 방법 OS: Centos7 💡  로그 관리는 시스템의 안정성 및 보안을 유지하는 데 중요한 부분입니다. 로그는 시스템 이벤트 및 활동에 대한 기록을 제공하여 문제 해결 및 감시를 도와줍니다. 아래는 CentOS 7에서 로그 관리를 위한 몇 가지 중요한 측면과 도구에 대한 설명입니다. 로그 위험도  1. Debug : 디버그용 로그 레벨, 가장 낮은 수준으로 디버깅 정보를 포함합니다.  2. Info : 정보용 로그 레벨, 일반적인 이벤트 및 상태 정보를 나타냅니다.  3. Notice : 주의 필요한 로그 레벨, 특별한 조치를 필요로 하는 중요한 이벤트를 나타냅니다.  4. Warnging or Warn : 경고용 로그 레벨, 예상치 못한 상황이 발생했음을 나타냅니다.  5. Error : 오류용 로그 레벨, 프로그램의 정상적인 동작을 방해하는 오류를 나타냅니다.  6. Crit or Critical : 심각한 로그 레벨, 시스템의 중요한 기능이 실패했음을 나타냅니다.  7. Alert : 경보용 로그 레벨, 즉시 조치가 필요한 중요한 상황을 나타냅니다.  8. Emerg or Emergency : 응급상황 로그 레벨, 시스템이 심각하게 손상되었거나 더 이상 사용할 수 없는 상태임을 나타냅니다. 💡  Emerg 레벨의 로그는 가장 심각한 문제를 나타내므로 주의 깊게 살펴봐야 합니다. 이러한 로그 메시지가 나타나면 즉시 조치를 취해야 하며, 시스템의 기능이나 안전성에 심각한 위험이 있을 수 있습니다. 시스템 로그 파일 위치 # cd /var/log # ls anaconda  boot.log-20240111  cron  firewalld  maillog  rhsm  tallylog  yum.log  audit  btmp  dmesg  grubby_prune_debug  messages  secure  tuned    boot.log  chrony  dmesg.old  lastlog  qemu-ga  spooler  wtmp    [이와 같이 여러 로그파일들을 확인할 수 있습니다.] 시스템 로그 검색 방법 # journalctl Messges Log의 끝부분을 실시간으로 표시 # tail -f /var/log/messages 중요 로그 파일 설명  ●  /var/log/messages : 시스템 메시지 및 일반적인 로그 [부팅 및 종료, 시스템 상태 변경 등의 정보]  ●  /var/log/secure : 보안 로그 [로그인 시도, 실패한 로그인, sudo 사용 등의 정보]  ●  /var/log/audit/audit.log : SELinux 및 감사 로그 [SELinux 이벤트 및 정책 위반 정보]  ●  /var/log/dmesg : 커널 메시지 버퍼에 대한 로그 [부팅 시 하드웨어 및 커널 메시지를 제공]  ●  /var/log/maillog : 특정 응용 프로그램 및 서비스의 로그  ●  /var/log/httpd/ : Apache 웹 서버 로그 [OS최소설치일때 설치되지않습니다.]  ●  /var/log/mysql/ : MySQL 데이터베이스 서버 로그 [OS최소설치일때 설치되지않습니다.] 로그파일이 계속에서 용량이 커지는 것을 방지하기 위해 주기적으로 회전시켜주는 방법 # vi /etc/logrotate.conf # see \"man logrotate\" for details # rotate log files weekly weekly ----------[매주 로그파일 순환] [(yearly, monthly, weekly, daily>) 중 로테이트를 실행할 때 로그를 어떤 주기로 로테이트를 할지 선택] # keep 4 weeks worth of backlogs rotate 4 ----------[4주간 로그파일 유지] [몇 주간 로그파일을 유지할지 선택(가장 오래된 로그파일이 먼저 지워집니다.)] # create new (empty) log files after rotating old ones create -----------[이전 로그파일을 새로운 빈로그파일로 생성] [사용하지 않을시 (nocreate)] # use date as a suffix of the rotated file dateext -----------[날짜를 이름으로 로그파일 생성] # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp and btmp -- we\'ll rotate them here /var/log/wtmp {   monthly   create 0664 root utmp     minsize 1M   rotate 1 } /var/log/btmp {   missingok   monthly   create 0600 root utmp   rotate 1 } # system-specific logs may be also be configured here. 로그 패턴 검색 명령어 위에 나와있는 로그 위험도를 가지고 원하는 패턴을 검색할 수 있습니다. # grep \"pattern\" /var/log/messges (예시) # grep \"WARNING\" /var/log/messges 로그 모니터링 패키지  [Logwatch는 로그 파일에서 생성된 이벤트를 요약하고 리포트로 제공하는 도구] 설치방법 # yum install logwatch 실행 # sudo logwatch [기본적으로 Logwatch는 지난 24시간 동안의 로그를 요약합니다.] Logwatch의 파일 위치는 /var/log/logwatch/ 디렉터리에 저장됩니다. 해당 디렉터리에서 리포트 파일을 확인할 수 있습니다. 💡  Logwatch는 주로 시스템 상태, 보안 이벤트, 로그 통계 등을 요약하여 제공하므로, 이를 통해 시스템의 문제를 빠르게 식별하고 조치를 취할 수 있습니다. 2024.04.03
LVM 이란 LVM 사용 방법 LVM 이란 LVM이란 ● Logical Volume(LV)을 효율적이고 유연하게 관리하기 위한 기능입니다. ● 여러 물리 디스크를 하나의 볼륨 그룹으로 만든 후, 다시 논리적 볼륨으로 나누어서 사용합니다. 장점 ● 유연한 용량 논리 볼륨을 사용하는 경우 장치 및 파티션을 단일 논리 볼륨에 집계할 수 있습니다. 이 기능을 사용하면 파일 시스템을 단일 대규모 장치처럼 여러 장치에 걸쳐 확장할 수 있습니다. ● 편리한 장치 이름 지정 논리 스토리지 볼륨은 사용자 정의 및 사용자 정의 이름으로 관리할 수 있습니다. ● 크기 조정할 수 있는 스토리지 볼륨 기본 장치를 다시 포맷하고 다시 분할하지 않고도 간단한 소프트웨어 명령으로 논리 볼륨을 확장하거나 논리 볼륨을 줄일 수 있습니다 ? 디스크의 용량이 더 필요할 때 기존의 쓰던 디스크를 그대로 두고, 새로운 디스크를 추가 장착하여, Volume Grub에 추가한 뒤 사용하면 편하게 용량을 확장할 수 있습니다. 구성 방법은 아래와 같습니다. ● 과정: PV구성 → VG구성 → LV구성 ● OS: Centos7 ● DISK: 50GB *3 CentOS 7에서는 LVM 패키지가 기본으로 설치되어 있지만, 만약 없다면 다음 명령으로 설치할 수 있습니다. # yum install lvm2 디스크 추가 및 파티션 생성 현재 추가한 디스크 정보를 확인합니다. [실제 디스크명은, 시스템에 따라 다를 수 있습니다.] # fdisk -1 추가한 디스크 파티션을 생성해 줍니다. [저는 아래와 같이 /dev/sdb, /dev/sdc, /dev/sdd 3개의 디스크를 추가하였습니다] # fdisk /dev/sdb # fdisk /dev/sdc # fdisk /dev/sdd 각각의 디스크들을 파티션 설정을 해줍니다. # fdisk /dev/sdb Command (m for help) : n [n을 눌러 넘어가 줍니다.] Partition type :    p   primary (0 primary, 0 extended, 4 free)    e   extended Select (default p) : ---------[파티션 유형 선택으로 Enter를 눌러 넘어가줍니다. (default)] Using default response p Partition number (1-4, default 1) : ------------[파티션 번호 설정으로 Enter를 눌러줍니다. (default)] First sector (2048-104857599, default 2048) : ----[섹터 설정으로 Enter를 눌러줍니다. (default)] Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599) : Using default value 104857599 Partition 1 of type Linux and of size 50 GiB is set Command (m for help) : w ------------[저장 명령어로, w를 눌러줍니다.] The partition table has been altered! Calling ioctl( ) to re-read partition table. Syncing disks. 아래 명령어로 파티션이 설정된 디스크 정보를 확인할 수 있습니다. # fdisk -l Disk /dev/sdb : 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical) : 512 bytes / 512 bytes I/O size (minimum/optimal) : 512 bytes / 512 bytes Disk label type : dos Disk identifier : 0xec2d7732 Device Boot Start End Blocks Id System /dev/sdb1 2048 104857599 5242777683 83 Linux Disk /dev/sdc : 53.7GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical) : 512 bytes / 512 bytes I/O size (minimum/optimal) : 512 bytes / 512 bytes Disk label type : dos Disk identifier : 0x564a089d Device Boot Start End Blocks Id System /dev/sdc1 2048 104857599 52427776 83 Linux Disk /dev/sdd : 53.7 GB, 53687091200 bytes, 104857600 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical) : 512 bytes / 512 bytes I/O size (minimum/optimal) : 512 bytes / 512 bytes Disk label type : dos Disk identifier : 0x6ddfa8e1 Device Boot Start End Blocks Id System /dev/sdd1 2048 104857599 52427776 83 Linux 설정된 파티션을 물리 볼륨(PV)으로 설정 # pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 하나 이상의 물리 볼륨(PV)을 하나의 볼륨 그룹(VG)으로 설정 # vgcreate (VG이름) (PV) (예시) # vgcreate VG0 /dev/sdb1 /dev/sdc1 /dev/sdd1 VG확인 방법 [생성된 VG를 확인할 수 있습니다.] # vgdisplay -- Volume group --- VG Name VG0 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size < 149.99 GiB PE Size 4.00 MiB Total PE 38397 Alloc PE / Size 0 / 0 Free PE / Size 38397 / < 149.99 GiB VG UUID WIgfbu-7RaH-XjAQ-HEzi-PUYS-0Cca-x2ea1K 볼륨그룹(VG)에서 원하는 용량으로 논리 볼륨(LV)을 생성합니다. # lvcreate -L (원하는 용량) -n (LV이름) (생성된 VG) (예시) # lvcreate -L 50GB -n maya VG0 아래는 생성된 LV를 확인하는 방법입니다. # lvdisplay --- Logical volume --- LV Path /dev/VG0/maya LV Name maya VG Name VG0 LV UUID w97PnQ-IseL-CngM-M6hu-Iwz4-cwCR-sT134F LV Write Access read/write LV Creation host, time localhost.localdomain, 2024-01-10 15:38:27 +0900 LV Status available # open 0 LV Size 50.00 GiB Current LE 12800 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 해당 LV에 파일시스템을 생성합니다. # mkfs.xfs -f /dev/VG0/maya 아래 명령어로 UUID를 확인해줍니다. # blkid /dev/sr0: UUID=\"2020-11-04-11-36-43-00\" LABEL=\"CentOS 7 x86_64\" TYPE=\"iso9660\" PTTYPE=\"dos\" /dev/sda1: UUID=\"50c1c5d4-162a-484e-9fa4-7e4344c1635d\" TYPE=\"xfs\" /dev/sda2: UUID=\"dpdJGz-sJyQ-JiQw-1CoH-hcez-7K4e-gVLd16\" TYPE=\"LVM2_member\" /dev/mapper/centos-root: UUID=\"2c9ed7a0-ce19-4d88-99db-cc983328ff01\" TYPE=\"xfs\" /dev/mapper/centos-swap: UUID=\"72b8aa15-e046-4084-9c2c-f40b93879e84\" TYPE=\"swap\" /dev/sdb1: UUID=\"PdhsGo-1oDI-BceI-Ot9c-Tq0q-F2JB-kVzfkk\" TYPE=\"LVM2_member\" /dev/sdc1: UUID=\"kOmHXN-8EJx-RAh1-RVJd-hvwz-wY9R-QOIYq3\" TYPE=\"LVM2_member\" /dev/sdd1: UUID=\"WrNvhk-B0Hs-AJpB-R9TF-QdVw-855b-8dQLfG\"TYPE=\"LVM2_member\" /dev/mapper/VG0-maya: UUID=\"9ce07e0f-dcb0-409c-b1b3-a940060ef138\" TYPE=\"xfs\" 마지막으로 마운트 후, 사용하시면 됩니다. 디렉토리 생성 # mkdir /data 마운트 # mount /dev/mapper/VG0-maya /data 디스크 정보 확인 # df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 6.2G 0 6.2G 0% /dev tmpfs 6.3G 0 6.3G 0% /dev/shm tmpfs 6.3G 8.6M 6.2G 1% /run tmpfs 6.3G 0 6.3G 0% /sys/fs/cgroup /dev/mapper/centos-root 28G 1.5G 27G 6% / /dev/sda1 1014M 137M 878M 14% /boot tmpfs 1.3G 0 1.3G 0% /run/user/0 /dev/mapper/VG0-maya 50G 33M 50G 1% /data LV생성 후, VG 용량 확인 방법은 아래와 같습니다. # vgdisplay ---- Volume group --- VG Name /dev/VG0 System ID Format lvm2 Metadata Areas 3 etadata Sequence No 2 VG Access read/write VG Status esizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 3 Act PV 3 VG Size < 149.99GiB PE Size 4.00 MiB Total PE 38397 Alloc PE / Size 12800 / 50.00 GiB -----------------(남은 용량 확인) Free PE / Size 25597 / < 99.99 GiB Free VG UUID WIgfbu-7RaH-XjAQ-HEzi- PUYS -0Cca-x2ea1K 논리 볼륨(LV)을 삭제하려면 아래와 같습니다. [논리 볼륨을 삭제하면 해당 볼륨에 저장된 데이터가 사라지므로 신중히 진행해야 합니다.] 삭제할 LV마운트 해제 (필수) # umount /dev// (예시) # umount /dev/mapper/VG0-maya 논리 볼륨 삭제 # lvremove /dev// (예시) # lvremove /dev/mapper/VG0-maya 볼륨 그룹에서 삭제 # vgremove (예시) # vgremove VG0 물리 볼륨에서 삭제 # pvremove /dev/sdd1 여기서 sdd1은 PV의 경로에 따라 적절히 변경해 줍니다. ?  LVM은 설정 및 조작에 대한 오류로 인해 데이터 손실이 발생할 수 있으며, 복구가 어렵습니다. 각 볼륨그룹과, 논리볼륨이 일부 공간을 소비하여 디스크 공간 낭비가 있습니다. LVM은 유연성과 운영체제에서 볼륨을 효과적으로 관리하는 데에 많은 도움을 주지만, 이러한 단점을 고려하여 사용해야 합니다. 2024.03.04
윈도우 server 네트워크 티밍 (Network Teaming) 두 개의 NIC를 이용한 독립 전환 이중화 방법(Active/Standby) 윈도우 server 네트워크 티밍 (Network Teaming) 네트워크 티밍(Network Teaming) 이란? 둘 이상의 네트워크 인터페이스를 결합하여 하나의 가상 인터페이스로 동작하게 하는 기술입니다. 이를 통해 네트워크 성능을 향상 시키고, 고 가용성을 제공하며, 부하 분산을 할 수 있습니다. 주로 서버 환경에서 사용되며, 신뢰성 및 성능 향상을 위해 여러 네트워 크 연결을 하나로 결합하는 데 활용됩니다.(윈도우 환경에서는 teaming , 리눅스 환경에서는 bonding이라고 불립니다) 네트워크 티밍(Network Teaming) 종류 1. Switch Independent (Static Teaming): ● 이 모드에서는 본딩 된 어댑터 간에 특정한 스위치와의 의존성이 없습니다. 각각의 어댑터가 본딩 된 팀에서 독립적으로 작동하며, 네트워크 트래픽은 사용 가능한 어댑터 간에 균등하게 분산됩니다. 2. Switch Dependent (Dynamic Teaming): ● 이 모드에서는 본딩 된 어댑터가 특정한 가상 스위치에 종속됩니다. 스위치가 어댑터에 대한 부하 분산을 결정하고, 어댑터 간에 트래픽을 분산합니다. 3. IEEE 802.3ad (Dynamic Link Aggregation): ● 이 모드는 스위치의 지원이 있는 경우에 사용 가능하며, 동적으로 링크 어그리게이션을 수행합니다. IEEE 802.3ad 표준에 따라 여러 물리적 링크를 하나의 논리적 링크로 결합합니다. 4. Hyper-V Port: ● 이 모드는 Hyper-V 가상 스위치와 함께 사용될 때 특히 유용합니다. 트래픽은 각 가상 스위치 포트로 분산됩니다. 5. Static Teaming: ● 이 모드에서는 사용 가능한 모든 어댑터에 트래픽이 균등하게 분산됩니다. 이는 특정 스위치와의 의존성이 없는 정적인 부하 분산 방식입니다. 구성 방법 - 구성 환경 : windows 2022 server - 테스트 장비 : AUSUS RS300-E11-PS4 - 테스트 티밍 종류 : Switch Independent (Static Teaming) 1. 서버관리자 로컬 서버에서 NIC 팀 사용 안 함을 클릭합니다. 2. 작업에서 새 팀을 클릭합니다. 3. 팀 이름을 임의로 만든 후 (test) 아래 사진과 같이 설정합니다. - 팀 구성 모드 : 독립 전환 - 부하 분산 모드 : 동적 - 대기 어댑터 : 이더넷 2 4. 사진과 같이 설정되었는지 확인합니다. 5. 네트워크 연결에서 test라는 새로운 디바이스를 확인합니다. 6. 명령 프롬프트에 들어옵니다. 7. 외부로 ping이 나가는지 확인합니다. 8. 테스트 방법 - 사진과 같이 서버에 연결되어 있는 랜선을 하나씩 제거해 보면서 ping이 잘나가는지 확인합니다. 9. 정상작동 확인 2024.01.31
Linux에서 서버 상태를 파악해 보자. IpmiTool 사용 방법. Linux에서 서버 상태를 파악해 보자. IPMI(Intelligent Platform Management Interface)란, ●서버 관리를 위한 관리 인터페이스로 원격지나 로컬 서버의 상태를 파악하고 제어할 수 있는 유틸리티입니다. ? 모든 서버에는 네트워크 관리자 포트가 따로 탑재되어 있어, 노트북을 이용하여 해당 서버에 직접 연결 후, 서버 상태와 로그 등 확인할 수 있습니다. (1) IpmiTool 설치 방법 아래 명령어를 이용하여 IpmiTool을 설치하시면 됩니다. # sudo apt update # sudo apt install ipmitool (2) 명령어 사용방법 [IPMI 정보 확인 방법] 아래 이미지와 같이 명령어로 ipmi 정보[주소]를 확인할 수 있습니다. # sudo ipmitool lan print [System power 상태 확인 방법] # sudo ipmitool chassis statu 아래 명령을 통해 power 전원을 작동 시킬 수 있습니다. # sudo ipmitool chassis power on or # sudo ipmitool chassis power off [System Sensor Date 상태 확인 방법] # sudo ipmitool sdr list [System Event Log 상태 확인 방법] 아래 명령어로 Log를 확인하여 하드웨어 상태를 점검할 수 있습니다. $ sudo ipmitool sel list [옵션 값으로 last 5를 붙이면 마지막 5개의 이벤트 로그를 확인할 수 있습니다.] (3) IPMI 설정 방법 [Ipmi IP 설정 방법] IP가 설정되어 있지 않을 때 방법 입니다. 설정 후 해당 IP로 접속 가능합니다. # sudo ipmitool lan set 1 ipsrc static [Default로 DHCP로 설정되어 있기에, Static으로 변경해 줍니다.] # sudo ipmitool lan set 1 ipaddr (IP) [(IP) 쪽에 원하는 IP를 넣어주세요.] # sudo ipmitool lan set 1 netmask (NetMask) [NetMask를 넣어줍니다.] # sudo ipmitool lan set 1 defgw ipaddr (GateWayIP) [GateWayIP를 넣어줍니다.] # sudo ipmitool lan set 1 access on [설정을 마무리 해줍니다.] # sudo ipmitool bmc reset cold [IpmiTool 재시작 합니다.] 재시작 후, IP정보 확인 방법 # sudo ipmitool lan print 1 [User 생성 방법] 아래 명령어를 이용하여, 계정을 잃어버렸거나, 계정 추가를 할 때 사용할 수 있습니다. # sudo ipmitool user list [우선 Default 계정이 존재하기에, 유저 리스트를 확인해 줍니다.] 위에 이미지처럼 1번, 2번 빼고는 빈 ID로 해당 ID에 유저를 생성해 줍니다. [User ID 생성] # sudo ipmitool user set name < user id > < user name > 예시) sudo ipmitool user set name 3 sadmin [User PWD 생성] # sudo ipmitool user set password < user id > Password for user 3: 예시) sudo imitool user set password 3 아래 명령을 통해 User에 권한을 부여할 수 있다. # sudo ipmitool user priv < user id > < privilege level > < channel num > 예시) sudo ipmitool user priv 3 4 1 [1번 채널에 UserID3번을 administrator 권한을 부여한다.] privilege level 목록은 아래와 같습니다. [privilege level] 1  Callback level 2  User level 3  Operator level 4  Administrator level 5  OEM Proprietary level 15  No access 생성된 유저 정보 확인 방법 # sudo ipmitool user list 아래 이미지처럼 UserID 3번에 User가 생성된 걸 확인할 수 있습니다. 2024.01.02
Docker swarm으로 mlflow를 쉽게 구성해 보자. docker swarm 구성 장점. Docker swarm으로 mlflow를 쉽게 구성해 보자. Mlflow의 주요 특징 및 용어 MLflow는 오픈 소스 머신 러닝 라이프사이클 관리 도구로, 모델 훈련, 추적, 협업, 그리고 모델 배포를 간단하게 관리할 수 있게 해 줍니다. MLflow는 모델 훈련 코드, 파라미터, 메트릭, 모델 아티팩트 등을 추적하며, 실험과 버전을 관리합니다. 1.Tracking:모델 훈련의 메트릭, 파라미터 등을 추적하고, 여러 실험을 생성하고 비교할 수 있는 기능을 제공합니다. 2.Projects:모델 코드를 패키징하고 다양한 환경에서 쉽게 재현할 수 있도록 하는 프로젝트 관리 기능이 있습니다. 3.Registry:모델 버전을 추적하고 모델 레지스트리에서 모델을 저장, 검색, 배포할 수 있습니다. 4.Flavors:모델 아티팩트를 저장하고 로드하는 다양한 형식과 환경에 대한 지원을 제공합니다. [Docker Swarm을 사용하여 MLflow를 구성했을 때 장점] 1.쉬운 배포:Docker Swarm은 Docker의 일부로 제공되며, 단일 명령어로 클러스터를 설정하고 서비스를 배포할 수 있습니다. 초기 구성이 상대적으로 간단하며, 단일 호스트에서 멀티노드 클러스터까지 쉽게 확장할 수 있습니다. 2.통합성:Docker Swarm은 Docker 컨테이너 기반으로 동작하기 때문에 기존에 Docker를 사용하는 환경에서 쉽게 도입할 수 있습니다. 도커 컨테이너는 환경에 관계없이 일관되게 동작합니다. 3.클러스터 관리:Docker Swarm은 클러스터 관리를 위한 간단한 명령어를 제공하며, 클러스터에서 서비스를 확장하고 관리하기가 상대적으로 쉽습니다. 4.역할 분리:MLflow는 모델 라이프사이클 관리에 중점을 둡니다. 따라서 각 도구가 자신의 역할을 수행하면서 역할을 분리할 수 있습니다. 5.모델 훈련과 배포:MLflow는 모델 훈련 코드를 관리하고 모델 버전을 추적하며, 편리하게 모델을 관리하고 배포할 수 있습니다. 6.스케일 다운 및 자동 복구:Docker Swarm은 서비스의 인스턴스 수를 쉽게 조절할 수 있습니다. 따라서 MLflow 서비스의 부하에 따라 스케일을 업 또는 다운하고 필요한 경우 자동으로 복구할 수 있습니다. 결론적으로, Docker Swarm을 사용하여 MLflow를 구성하면 쉽고 빠르게 시작할 수 있으며, 간단한 환경에서는 효과적일 수 있습니다. 그러나 기능의 확장성과 더 복잡한 워크 로드를 다루기 위해서는 Kubernetes와 같은 더 강력한 오케스트레이션 도구를 고려해 볼 수 있습니다. (1)Docker swarm으로 Mlflow 구성 방법 저의 구성 환경입니다.[master, node1, node2] OS: Ubuntu22.04[VM] CPU: 4core MEMORY: 10GB DISK: 50GB 1: Docker 및 Docker Swarm 설치 docker 설치 # sudo apt update # sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable\" # sudo apt update # apt-cache policy docker-ce # sudo apt install docker-ce # sudo systemctl status docker docker-compose 설치 # sudo apt-get install jq # VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r) DESTINATION=/usr/bin/docker-compose # sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION # sudo chmod 755 $DESTINATION # which docker-compose # sudo apt install docker-compose Docker Swarm 초기화 (마스터 노드에서만 실행) # sudo docker swarm init 나머지 노드 Join docker swarm join --token SWMTKN-1-2c7c3b4ph7mgqo6ewwl867qqvz5m7asc0jx5mxm0awa5cojxbs-2j9llq4ti57vlqvfeb6eqo0gv 192.168.0.111:2377 node확인 방법 [마스터 노드에서 확인 가능합니다] # sudo docker node ls 아래 이미지와 같이 나온다면 완료 입니다. 2. MLflow 서비스 생성: MLflow Docker 이미지 가져오기 - docker file을 아래와 같이 작성하여 이미지를 빌드해 줍니다. # sudo mkdir docker # cd docker # sudo vi Dockerfile FROM python:3.8 RUN pip install mlflow EXPOSE 5000 CMD [\"mlflow\", \"ui\", \"--host\", \"0.0.0.0\"] # sudo docker build -t mlflow-server:latest . MLflow 서비스 생성 # sudo vi mllfow-stack.yml version: \'3.8\' services: mlflow: image: mlflow-server:latest deploy: replicas: 1 ports: - \"5000:5000\" volumes: - mlflow-data:/mlflow volumes: mlflow-data: MLflow 실행 # sudo docker stack deploy -c mlflow-stack.yml flow-stack MLflow 확인방법 # sudo docker stack list AME SERVICES flow-stack 1 # sudo docker stack ps flow-stack ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS tqfyevzwdpww flow-stack_mlflow.1 mlflow-server:latest master Running Running 37 seconds ago 이제 mlflow는 Docker Swarm에서 실행 중입니다. 웹 브라우저에서 http://:5000로 이동하여 MLflow 웹 UI에 액세스할 수 있습니다. span{vertical-align: inherit;} li span{vertical-align: middle;} p span{vertical-align: top;} 2024.01.02
오픈소스로, 자원관리를 통해 이중화가 가능한 Pacemaker를 알아보자. Master/Slave로 Pacemaker를 설치해보자. 오픈소스로, 자원관리를 통해 이중화가 가능한 Pacemaker를 알아보자. Pacemaker란, 고가용성 클러스터 자원관리 오픈소스입니다. 여러 대의 서버를 클러스터로 묶어 자원관리를 통해 이중화가 가능한 소프트웨어입니다. Pacemaker의 기능들 (Fail Over)하나의 노드가 장애가 생겼을 때 다른 노드가 서비스를 이어받아 서비스 중단 없이 운영이 가능합니다. 모니터링 및 제어 기능 네트워크, 노드, 디스크 등 저의 구성환경입니다.[2대 동일합니다] OS:Ubuntu22.04 CLI CPU:8core MEMORY:16GB DISK:50GB IP:192.168.0.57 / control / gpuadmin1 IP:192.168.0.56 / node1 / gpuadmin2 IP:192.168.0.43 / vip / vip (1) Pacemaker 설치 (ControlNode, SlaveNode 둘 다 설정해 줍니다.) (1-1) 우선 /etc/hosts 쪽에 해당 control, node1 의 IP를 넣어줍니다. #sudo vi /etc/hosts #wq! 아래 이미지처럼 IP, HOSTNAME을 넣어주시면 됩니다. [위에 만약 같은 호스트 네임이 있다면 주석처리해 주세요.] (1-2) Pacemaker를 설치해 줍니다. #sudo apt install pacemaker pcs (1-3) 설정 변경해 줍니다. #sudo vi /usr/lib/systemd/system/corosync.service #wq! 아래 이미지처럼 Type=simple로 바꿔주세요. (1-4) 패스워드를 설정해 줍니다. #sudo passwd hacluster #sudo systemctl restart pcsd (2) Pacemaker 설정해 줍니다. (Control Node만) #sudo pcs host auth control node1 -u hacluster #sudo pcs cluster setup FileCluster control node1 —force 아래와 같이 successful이라고 나오면 됩니다. (2-1) 이제 Pacemaker를 시작해 줍니다. (Control, Slave 둘 다) #sudo pcs cluster start #sudo pcs cluster enable (2-2) 아래 명령어로 Control, Slave 두대다 잘 올라왔는지 확인해 줍니다. #sudo pcs status #node list 확인하시면 됩니다. #sudo pcs cluster status #아래 사진 참고 (3-3) 나머지 설정값을 입력해 줍니다. (Control만) #sudo pcs property set stonith-enabled=false #sudo pcs property set no-quorum-policy=ignore #sudo pcs property set default-resource-stickiness=\"INFINITY\" --force (3-4) 나머지 vip 설정을 해줍니다. IP는 vip IP로 넣어주시면 됩니다.(Control만) #sudo pcs resource create vip ocf:heartbeat:IPaddr2 ip=”192.168.0.43” cide_netmask=”32” op monitor timeout=”30s” interval=”20s” role=”Slave” op monitor timeout=”30s” interval=”10s” role=”Master” --force (3-5) 아파치를 설정해 줍니다. (Control만) #sudo pcs resource create web_service systemd:apache2 ip monitor timeout=”30s” interval=”20s” role=”slave” op monitor timeout=”30s” interval=”10s” role=”Master” --force 설정이 끝난 후, 아래 이미지처럼 vip IP도 잘 뜨는 것을 확인할 수 있습니다. (# ip ad) (4) 설정이 다 끝난 Pacemaker를 웹브라우저로 실행시키면 아래 이미지처럼 나옵니다. https://[ControlNoedIP]:2224 Username: hacluster Password:(1-4)에서 설정하신 암호 (4-1) 로그인 후, 아래 이미지처럼 Add Existing를 누르신 후, 해당 Node의 HostName으로 Node를 추가하시면 됩니다. 추가 후, 아래 이미지처럼 기존 클러스터가 추가되신걸 확인할 수 있습니다. 이제 여기서 클러스터의 상태를 확인하거나 관리할 수 있습니다. span{vertical-align: inherit;} li span{vertical-align: middle;} p span{vertical-align: top;} 2024.01.02
PCMemtest를 사용해서 메모리 테스트 OS에서 간단히 Memory의 상태를 점검할 수 있습니다. PCMemtest를 사용한 메모리 테스트 PCMemtest 메모리 장애점검 방법은 여러 가지가 있습니다 오늘은 그중 하나인 PCMemtest를 안내해 드립니다. 현재 사용하고 있는 서버의 메모리를 전문 엔지니어가 아니더라도 PCMemtest를 사용해 매우 간단하게 점검할 수 있습니다. PCMemtest는 시스템의 메모리 안정성을 검사하고 문제를 발견하는데 사용되는 강력한 도구입니다. PCMemtest는 주로 서버 및 PC 하드웨어를 테스트하고 디버그 하는데 사용되며, 메모리 모듈의 결함이나 오류를 식별하여 시스템의 안정성을 향상시키는데 도움을 줍니다. 설명하기 앞서 먼저 메모리가 불량일 때 증상들을 알려드리겠습니다. 간헐적으로 강제로 재부팅이 된다. 블루 스크린이 뜬다. 부팅이 안된다. 메모리 용량 누락. 위 증상들이 100% 메모리 문제라고는 말하지 못하지만 메모리가 불량일 경우에 위 증상이 나타납니다. 제가 사용하는 서버의 OS , 메모리의 스펙은 아래와 같습니다. OS : Ubuntu22.04 server (CLI) boot : UEFI Memory : 32GB * 8 먼저 Ubuntu에서 필요한 패키지를 다운로드합니다. sudo apt-get install pcmemtest [boot 방식이 legacy 타입일 경우] sudo apt-get install memtest86+ [본인이 사용하고 있는 시스템의 부팅방식을 모를 경우 바이오스에서 부팅방식을 확인하는 방법과 /sys/firmware/efi라는 디렉토리가 존재한다면 UEFI 방식이고 존재하지 않는다면 legacy 방식입니다] 패키지를 다운로드하였다면 시스템을 재부팅 후 shift 키를 꾹 누르고 있으면 아래 이미지와 같은 화면이 나옵니다. Memory test (pcmemtest) 실행을 하면 위와 같은 화면이 출력되면서 바로 점검이 진행되게 됩니다.이상이 있는 메모리가 확인될 경우 아래 파란 공백란에 불량 메모리의 주소가 나타납니다. 위 화면처럼 이상이 없을 경우에는 ESC 눌러서 종료해 주시면 됩니다. 사용하시는 시스템이 리눅스 계열이 아닌, 윈도우를 사용 중이시라면 Windows 10 또는 11 일 경우에는 Windows 메모리 진단으로 점검하는 방법이 있습니다. 메모리 진단을 실행하게 되면 재부팅이 되면서 메모리 진단을 합니다.실행 전 꼭 하시던 작업을 저장 및 종료하시고 진행하시길 권장합니다. Windows 2019 나 2022 같은 서버용 OS를 사용 중이시라면 Memtest86+ 프로그램을 사용하기도 합니다. https://www.memtest86.com/download.htm 다운로드하신 후 아무것도 안 들어있는 USB에 파일을 넣고 부팅하시면, Ubuntu 메모리 테스트 이미지처럼 메모리 테스트가 바로 진행됩니다. 메모리 테스트를 매일 할 수는 없지만 건강한 하드웨어 관리를 위해 시간이 될 때 날 잡고 시도하시길 권장합니다. 2023.12.06
여러 대의 클러스터 서버들을 간편하게 모니터링, 관리할 수 있는 오픈소스를 알아보자. Ganglia라는 오픈소스를 구성해 보자. 여러 대의 클러스터 서버들을 간편하게 모니터링, 관리할 수 있는 오픈소스를 알아보자. Ganglia란, 클러스터 및 그리드를 위한 확장 가능한 분산 모니터링 시스템입니다. 즉, 클러스터의 사용 상태를 모니터해 주는 오픈소스입니다. Ganglia 장점 메모리, CPU, 디스크, 등, Hadoop, dfs와 관련된 200개 이상의 메트릭 정보를 모니터링할 수 있다는 장점과, 웹 UI가 모바일 장치에도 최적화되어있어 사용이 용이합니다. 아래는 저의 구성 환경입니다.[2대 서버 동일합니다.] OS:[VM]Ubuntu20.04 CLI CPU:8core MEMORY:16GB DISK:50GB Master Node: gpuadmin1 / IP:192.168.0.55 Slave Node: gpuadmin2 / IP:192.168.0.43 (1) Master Node 먼저 Ganglia를 설치해 줍니다. (1-1) 우선, 업데이트를 진행합니다. #sudo apt-get update (1-2) Ganglia에 필요한 패키지들을 다 같이 설치해 줍니다. #sudo apt-get install ganglia-monitor #sudo apt-get install rrdtool #sudo apt-get install gmetad #sudo apt-get install ganglia-webfrontend (1-3) Ganglia-webfrontend 구성파일들을, Apache 폴더에 복사해 줍니다. #sudo cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf (1-4) Ganglia Gmetad.Conf 파일을 편집해 줍니다. #sudo vi /etc/ganglia/gmetad.conf #wq! 아래 이미지처럼, 자신의 클러스터 이름을 넣어주시면 됩니다. (1-5) Gmond.conf 파일을 편집해 줍니다. #sudo vi /etc/ganglia/gmond.conf #wq! 1.아래 이미지와 같이,/etc/ganglia/gmetad.conf 에서 설정한 클러스터 네임과 일치하게 넣어주세요. 2.MasterNode IP를 아래와 같이 [host = 192.168.0.55] 넣어주고, mcast_join는 주석처리 해주시면 됩니다. 3.아래와 같이 mcast_join, bind는 주석처리 해주시면 됩니다. (1-6) 위의 모든 설정이 끝난 후, 서비스를 다시 시작해 주세요. #sudo systemctl restart ganglia-monitor #sudo systemctl restart gmetad #sudo systemctl restart apache2 (2) Slave Node를 구성해 보겠습니다. (2-1) Slave Node는 GangliaMonitor만 설치하시면 됩니다. #sudo apt-get install ganglia-monitor (2-2) Master Node와 동일하게 gmond.conf 파일을 편집해 줍니다. #sudo vi /etc/ganglia/gmond.conf #wq! 1. 아래 이미지처럼 MasterNode와 같게 설정해 주시면 됩니다. [name={MasterNode ClusterName}] 2. 아래와 같이 mcast_join은 주석처리하고, [host = {MasterIP}] 넣어주시면 됩니다. 3. 아래 이미지처럼,mcast_join 과 bind 를 주석처리 해주세요. (2-3) GangliaMonitor service를 재시작해줍니다. #sudo systemctl restart ganglia-monitor (3) 웹 인터페이스로 들어가 줍니다. http://MasterNode IP/ganglia 아래 이미지처럼 접속이 되시는 걸 볼 수 있습니다. 192.168.0.43 = SlaveNode gpusystem = MasterNode 해당 노드로 들어가시면 모니터링이 가능합니다. 이와 같이 모니터링이 가능합니다. 2023.12.05
PLEASE WAIT WHILE LOADING...