본문 바로가기

리눅스76

GSLB (Global Server Load Balancing) 란? IDC를 넘나드는 이중화 서비스를 구현할 때 GSLB라는 단어를 접하게 된다. GSLB란 무엇이고 일반 DNS와 어떤 점이 다른지 알아보자. GSLB (Global Server Load Balancing) GSLB는 Global Server Load Balancing의 약자이다. 이름에 로드 밸런싱이 들어가 있어서 로드 밸런스의 발전된 형태로 생각할 수도 있지만 사실 GSLB는 DNS의 발전된 형태다. GSLB를 지능적 DNS라고 부르기도 한다. GSLB는 다양한 기능을 통해 다음을 제공한다. 재해 복구(Disaster Recovery) 부하 분산(Load Balancing) 저지연 (Low Latency) DNS를 이용한 로드밸런싱 DNS는 도메인 이름을 IP 주소로 변환해주는 서비스다. 글로벌 로드밸.. 2024. 3. 8.
[Linux] 캐싱(Caching)과 버퍼링(Buffering) 그리고 스풀링(Spooling) 시스템 소프트웨어를 다루다보면 '캐싱(Caching)', '버퍼링(Buffering)', '스풀링(Spooling)'에 대한 언급이 자주 나온다. 이들은 각각 어떤 개념이고 어떤점에서 다른지 알아보자. 캐싱 (Caching) 캐싱이란 데이터를 좀 더 빠른 속도의 메모리 영역에 가져와서 접근하는 방식을 말한다. 우리가 사용하는 컴퓨터는 하드디스크, SSD, RAM, CPU 캐시 등의 메모리로 구성되어 있다. 하드디스크과 SSD는 데이터에 접근하기까지 시간이 오래걸리지만 저렴하다. CPU의 캐시는 굉장히 빠르지만 가격이 비싸다. 따라서 이들을 계층적으로 구성해서 필요하거나 필요할 것으로 예상되는 데이터를 미리 더 빠른 메모리로 올려놓고 처리하게 되는데, 이를 캐싱이라고 한다. 데이터는 지역성(Locality.. 2023. 12. 8.
[Linux] 빈 RPM 패키지 만드는 방법 리눅스 서버를 운영하다보면 빈 RPM 패키지를 만들어 설치해야할 때가 있다. 특정 소프트웨어를 Makefile로 직접 빌드해 설치하는 경우 서버에는 소프트웨어가 설치되지만 rpmdb에는 패키지 정보가 추가되지 않는다. 소프트웨어를 사용할 수는 있지만 rpm을 통해 설치하지 않아서 의존성 체크는 계속 실패하게 된다. 이 경우 빈 rpm 패키지를 만들어 설치하는 식으로 rpm의 의존성 체크를 우회할 수 있다. 예를 들어 python 패키지는 특정 버전 이후부터 python2와 python3로 패키지 이름이 변경되었다. 오래된 버전의 운영체제에서 동작하던 소프트웨어 중에는 python 이라는 이름의 패키지에 의존성이 걸려있는 경우가 있다. python2, python3가 설치되어 있고 alias도 되어 있어 .. 2023. 8. 10.
[Linux] tar: Ignoring unknown extended header keyword 에러 해결 리눅스 환경에서 타르볼(*.tar.gz) 파일을 풀어야 할 일이 있었다. tar xzvf 명령을 이용해서 타르볼을 풀었는데 다음 에러 메시지가 터미널 창을 가득 채웠다. tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' 타르볼을 풀어서 수행하던 작업이 제대로 끝나지 않아서 저 에러가 뭔지 찾아봤다. .. 2023. 3. 21.
[Linux] gzip - gz 압축하기, 압축풀기 gz 명령으로 파일을 압축하고 gz 파일의 압축을 풀어보자. gzip 설치 gzip 명령은 리눅스에 기본으로 제공되고 있다. 만약 gzip 명령이 없다면 다음 명령으로 설치하면 된다. apt install gzip gz 압축하기 gzip {압축 할 파일명} 파일을 압축하기 위해서는 gzip 명령어의 인자로 압축할 파일을 명시하면 된다. $ gzip abc.txt 수행 결과로 abc.txt 파일은 사라지고 abc.gz 파일이 생성된다. gz 파일은 여러개의 파일을 하나로 묶어서 압축하기 위해 사용하는 명령이 아니다. 여러 파일을 우선 tar 명령으로 묶은 다음 gzip 명령으로 압축하면 된다. gz 압축풀기 gzip -d {압축 파일}.gz 파일의 압축을 풀기 위해서는 gzip 명령의 -d 옵션으로 압축 .. 2023. 3. 13.
[Linux] SSH 연결 최적화 - ControlMaster, ControlPath, ControlPersist 설정 클러스터를 운영하는 경우 운영 서버로 ssh 접속을 해야하는 경우가 있다. 이 때, 환경설정에 따라 아이디, 비밀번호 이외에 추가로 OTP 등의 인증을 요구하는 경우가 있다. 하루에 한번 업무차 접속하는 경우라면 상관없지만 빈번하게 새로운 ssh 연결을 생성해야하는 경우라면 매번 해야하는 ID, Password, OTP 등의 절차가 매우 번거로울 수 있다. 이 때, ControlMaster, ControlPath, ControlPersist 설정을 해두면 번거로움을 어느정도 해소할 수 있다. ssh 설정 ~/.ssh/config 파일을 열고 다음 설정을 추가하자. Host server HostName my.host.com User myUserId ControlMaster auto ControlPath ~.. 2023. 1. 4.
[Linux] pstree 명령어 사용법 및 예제 pstree 명령어는 프로세스의 부모-자식 관계를 트리형태로 출력해주는 명령어다. 프로세스들의 관계를 트리 형태로 출력해주어 계층관계를 한눈에 알아볼 수 있게 한다. 리눅스에서 프로세스는 부모 프로세스에 의해 생성된다. 프로세스들을 관리할 때 부모-자식 관계를 알아야 하는 경우가 종종 발생하는데, pstree 명령어를 이용해서 이 관계를 알 수 있다. 트리형태로 표현되는 정보를 통해 시스템 관리자는 프로세스의 생성 관계를 직관적으로 확인할 수 있다. pstree 사용법 $ pstree [-a][-c][-h][-n][-p][-u] pstree 옵션 옵션 설명 -a 실행한 프로세스의 인자와 옵션까지 모두 표시 -c 1개의 프로세스의 중복된 개수로 출력 -h 부모 프로세스를 강조해서 출력 -n 출력시 PID .. 2022. 11. 29.
[Linux] tcpdump 명령어 사용방법 tcpdump는 리눅스나 유닉스 계열 운영체제에서 네트워크 인터페이스를 통해 송수신되는 패킷의 정보를 출력해주는 프로그램이다. 특정 서버 장비에서 비정상적인 네트워크 입출력이 감지된 경우 문제의 원인을 파악하기 위해 tcpdump를 이용하면 된다. tcpdump는 libpcap 라이브러리를 이용해서 패킷을 캡쳐하고 확인된 정보를 파일로 저장한다. 따라서 확인된 정보를 wireshark 같은 분석 도구를 이용해 확인 할 수도 있다. tcpdump 설치 tcpdump는 yum을 통해 설치할 수 있다. $ sudo yum install tcpdump tcpdump 옵션 옵션 설명 -c 지정한 수 만큼 패킷을 수신 -i 지정한 인터페이스를 통하는 패킷들의 내역을 출력 -w 캡쳐한 패킷의 정보를 지정한 파일에 바.. 2022. 6. 17.
[Linux] ssh 터널링(ssh port forwarding) - Local / Remote / Dynamic Tunneling sh는 Secure SHell의 줄임말로 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜이다. 당연하게도 ssh는 원격 호스트로 접속하기 위해 가장 많이 사용된다. 그런데 ssh는 원격 호스트로의 접속과 더불어 ‘SSH Tunneling’ 혹은 ‘ssh port forwarding’이라는 재미있는 기능을 제공한다. SSH Tunneling(SSH Port Forwarding) 편의상 이후에는 그냥 SSH 터널링이라고 부르겠다. SSH 터널링은 프록시와 비슷한 역할을 한다. SSH 터널링을 사용할 수 있는 상황에 대한 예를 들어보겠다. Host A에서 Host B로 접근할 일을 생각해보자. Host A에 있는 어떤 앱의 클라이언트는 Host B에 있는 서버에 접속해야한다. 하지만 언제나 그렇듯 보안상 .. 2022. 6. 7.