본문 바로가기

전체 글68

systemd 를 통해 service 를 stop 시킬 때, 주의해야할 점 systemd 는 리눅스 에서 부팅부터 서비스 관리, 로그 등 시스템을 다루는데 있어서 백그라운드로 실행되어야 할 프로세스들을 관리해주는 프로세스입니다. 우리가 주로 사용하는 systemctl 이 이러한 systemd 를 관리하는 도구인 것이죠. 항상 띄어야하는 프로세스가 있을 때 우리는 이 systemd 를 이용하여 service 를 만들고, 설정해둡니다. 아래 예시를 보면 # service 파일 예시 [Unit] Description=Cleanup old Foo data [Service] Type=oneshot ExecStart=/usr/sbin/foo-cleanup [Install] WantedBy=multi-user.target 그리고 등록한 service 를 systemd status {serv.. 2023. 4. 1.
[강의 정리] Distributed System 5.3: Replication using broadcast # 강의 영상 정리 이전 장 2023.03.31 - [아키텍쳐] - [강의 정리] Distributed System 5.2: Quorums (정족수) 에서 살펴본 quorum 방식은 기본적으로 best-effort broadcast 를 이용합니다. (best-effort broadcast: client 가 보내는 모든 read/write 를 전체 replica로 전송 될 때, protocol 이 안정적이지가 않아서 올바른 순서로 오지 않을 수 있음) 다른 방법으로는 이전 2023.03.22 - [아키텍쳐] - [강의 정리] Distributed System 4: Broadcast protocols and logical time 에서 살펴본 broadcast 프로토콜이 있습니다. 한번 FIFO-total .. 2023. 3. 31.
[강의 정리] Distributed System 5.2: Quorums (정족수) # 강의 영상 정리 이 강의의 시작에서 얘기 했던 것과 같이 replication 은 시스템의 신뢰도를 향상시키는데 많이 유용합니다. 여러개의 replica 가 있을 때 하나의 replica 가 고장났을 때, 남은 하나가 이어서 연산을 진행 시킬 수 있기 때문입니다. 고장이 났다는건, 하드웨어 요소일 수도 있고 네트워크 문제일 수 있고, 소프트웨어 업데이트 등의 계획된 작업들 때문일 수도 있습니다. 하지만, 그 replication 을 정확히 어떤 식으로 구현했냐에 따라 시스템의 안정성에 큰 영향을 끼칩니다. fault tolerance 를 제외 하고는, 여러개의 replica 를 가진다는 것은 오히려 안정성을 안좋게 만듭니다. 더 많은 replica 를 가질 수록 각 replica 에 오류가 생길 확률.. 2023. 3. 31.
[강의 정리] Distributed Systems 5: Replication # 강의 영상 https://www.youtube.com/watch?v=mBUCF1WGI_I&list=PLeKd45zvjcDFUEv_ohr_HdUFe97RItdiB&index=15 정리 이제 우리는 "Replication" 문제에 대해서 이야기할 때가 되었습니다. "replication" 은 "replica" 라고도 하는, 동일한 데이터를 여러 노드에 복사해 저장하는 방식을 의미합니다. Replication 은 분산 시스템, 분산 파일 스토리지 등에 거의 기본 특징으로 자리잡고 있는데요, 우리는 이 replica 매커니즘을 이용해서 "fault tolerance" 를 만들어 내기도 합니다. 즉, 하나의 노드가 망가지면, 동일한 데이터가 저장된 노드에서 그 역할을 대신 수행하며 장애를 대응하는 것이죠. *.. 2023. 3. 29.
[번역] Coping with the TCP TIME-WAIT state on busy Linux servers - Vincent Bernat (WIP) 해당 글은 https://vincent.bernat.ch/en/blog/2014-tcp-time-wait-state-linux글을 번역하였습니다. Coping with the TCP TIME-WAIT state on busy Linux servers Do not blindly enable net.ipv4.tcp_tw_recycle. A full explanation of TIME-WAIT state in Linux. vincent.bernat.ch TL;DR net.ipv4.tcp_tw_recycle 옵션을 활성화 시키지 마세요. Linux4.12 버전 이후로 존재하지 않는 옵션입니다. 또한 많은 시간 동안 TIME_WAIT 은 유해한 소켓이 아니었습니다. 그렇지 않다면, 추천하는 방식으로 진행해 보세요.. 2023. 3. 28.
[강의 정리] Distributed System 4: Broadcast protocols and logical time # 강의 영상 정리 이번 4 장에서는 여러 참여 노드들에 메시지를 보내는 방식인 "broadcast protocols(multicast protocols)" 방식에 대해서 알아볼 것입니다. 실 환경에는 여러 broardcast protocol 들이 존재하는데, 이 방식 들은 여러 노드 들에 메시지를 보낸다는 컨셉은 동일하지만 어떤 식으로 메시지를 정렬 할 것인가 에 대한 차이점이 존재합니다. 그리고 우리는 바로 이전 글에서 time 을 기준으로 메시지를 정렬하는 방법에 대해서 살펴보았습니다. 즉, 이번 장에서는 분산 시스템에서 clock 을 통해 메시지를 추적하는 방안에 대해서 조금 더 깊게 파고들어 보겠습니다. Logical time clock 을 구분짓는 큰 부분으로 Logical 과 physical.. 2023. 3. 22.