*** 답변 댓글이 있을 때 글 내용 삭제시 경고 없이 계정이 정지됩니다. ***
*** 개인정보가 포함된 경우 혹은 불법적인 요소의 수정은 가능합니다.***
-------------------------------------------------------------------------------
안녕하세요?
마이닝풀허브 운영자 coincoin 입니다.
최근 서버 순환 재시작 때문에 불편을 끼쳐 죄송합니다.
현재 풀 서버는 여러 메이저 클라우드 업체 것을 조합해서 쓰고 있습니다.
아마존, digitalocean, linode 등 각각의 장단점 특성에 맞게 여러 지역에 분포해서 운영 중입니다.
1. 사건의 발단
1월 초 인텔의 보안 취약점 spectre, meltdown 이 공개되었습니다.
개인 사용자에겐 별 영향이 없지만 클라우드 환경에서 유독 큰 피해를 입힐 수 있는 취약점인데요
구글이 2017년 중순쯤 발견한 취약점을 올해 1월에 블로그에 공개하면서 세상에 알려졌습니다.
임시적인 1차 패치가 1월 초에 있었고, 이 때 풀의 모든 서버들이 한번씩 업그레이드 과정을 거쳤었습니다.
이번에는 두번째, 좀 더 견고한 패치가 배포되었습니다.
풀은 데이터센터 내에 직접 서버를 운영하지 않고 클라우드 업체에 사용료를 지불하고 씁니다.
이번에 일부 클라우드 업체에서 일방적으로 특정일에 패치를 적용하겠다고 공지하였고
이에 따라 몇 몇 서버들을 순환하면서 재시작할 수밖에 없었습니다.
제가 자유자재로 컨트롤할 수 있었다면 좀 더 느슨하게 띄엄띄엄 서버를 재시작했을텐데 선택지가 많지 않았었습니다.
2. 재접속 문제
서버가 재시작하면 풀에 연결되었던 모든 마이너는 접속이 끊겼다가 다시 재접속됩니다.
이렇게 자동으로 재접속하는 기능은 모든 마이너의 기본 기능 중 하나입니다.
예전엔 버그로 인해 재접속 복구가 안되는 마이너들이 있었습니다.
eth-proxy 라는 것을 쓰던 시절에는 서버와 연결이 한번 끊기고 나면
재접속이 안되서 마이너 앞에 늘 붙어있어야 했습니다.
그 후 zcash 초기 genoil 마이너 프로그램에도 비슷한 버그가 있었구요.
요즘 마이너 프로그램들 대부분은 안정성이 많이 올라갔습니다.
그럼에도 불구하고 접속 불가능한 경우가 생기는 것은
1) 동일 IP 로 수백대가 동시에 접속을 시도해서 자체 네트워크 방화벽이나 인터넷 프로바이더 혹은 풀에서 DDoS 로 보고 임시 차단
2) 풀에서 접속하는 마이너 인증이 느려서 지연
2) 공유기, 허브의 과부하
3) 채굴기의 불안정함
4가지 중 하나입니다.
-> 채굴장에서 접속을 한다면 외부에서 보이는 채굴장의 마이너들은 모두 하나의 IP 를 공유해서 쓰는 것일 수 있습니다.
이런 경우 동시다발적으로 같은 IP 에서 접속 요청이 가기 때문에 DDoS 로 오인될 수 있습니다.
DDoS 를 판단하는 것은 인터넷 서비스 제공업체일 수도 있고 풀일 수도 있습니다.
IP 할당을 더 받거나 회선 계약을 늘리는게 해결책이 될 수 있습니다.
-> 풀에서 접속하는 마이너 인증이 느릴 수 있습니다.
동시에 수천~수만개의 요청이 들어오면 풀에서 처리하는데 좀 걸릴 수 있습니다.
처음엔 접속이 거부될 수 있지만 이는 시간이 지나면 알아서 다음번 접속 시도 때 복구가 됩니다.
-> 또 하나는 공유기, 허브의 과부하입니다.
네트워크 장비의 과부하가 발생하면 패킷이 유실됩니다. 접속시도를 한 것으로 보이지만 애초 풀에는 접속 데이터가 오지도 않은 경우입니다.
어떤 공유기의 경우는 한번 과부하가 걸리고 나면 껐다 키지 않으면 절대 안 돌아오는 기기도 있습니다.
처리 용량이 큰 네트워크 장비로 바꾸면 해결될 수 있습니다.
-> GPU 가 놀다가 갑자기 다시 일을 시작하면 전력량이 일시적으로 더 들어갑니다.
오버/언더를 간당간당하게 맞춰놓으셨다면 이렇게 재접속시 문제가 생길 수 있습니다.
특히 최적의 해시를 위해 너무 극한까지 세팅해 놓았다면 여름이 올 때 온도 문제가 커집니다.
비교적 보수적으로 세팅해야 채굴기도 오래 쓰고 재접속도 잘 됩니다.
채굴장 전체적으로도 전력량이 갑자기 치솟기 때문에 이에 대한 대비가 필요할 수 있습니다.
3. 지난 1차 서버 재시작 때와는 왜 다른가?
1) 그 때는 2주 넘게 여유있게 작업을 했습니다. 이렇게 몰아서 패치되지 않았기 때문에 어느 정도 재시작 텀을 둘 수 있었습니다.
2) 또, 이번 패치는 I/O 가 비교적 느려지는 현상을 발견해서 다른 클라우드 업체로 이전하는 작업도 하게 되었습니다.
이더리움은 속도가 빠를수록 좋기 때문에 I/O 성능이 느려진다면 클라우드 업체를 바꿔야만 했습니다.
I/O 성능이 낮으면 채굴량이 적게 나오게 됩니다.
이 I/O 문제를 발견하고 강제 서버 패치 작업만이라도 좀 늦춰달라고 클라우드 업체에 실시간 채팅과
문의를 넣었었지만 결과적으로는 수락되지 않았습니다.
접속이 되는 것도 중요하지만 채굴량이 적게 나오게 된다면 그것도 큰 문제기 때문에
부득이하게 서버를 재시작하고 보완하는 과정이 있었습니다.
3) parity 이더리움 지갑의 성능 이슈도 있었습니다.
I/O 속도가 느려서 궁여지책으로 캐시 메모리를 훨씬 크게 잡게끔 설정을 바꿨는데
이게 오히려 블럭 파싱 속도를 느리게 만들어 버렸었습니다.
블럭 하나의 파싱이 대략 0.1초 이하면 준수한데 잘못된 옵션으로 바꾸고 나니 0.3~0.5 초로 뛰어올랐습니다.
이 때문에 블럭의 uncle rate 가 평소보다 훨씬 높아졌습니다.
4) 풀의 블럭 체크하는 로직 변경건
이더리움의 블럭이 바뀌는 경우 최대한 빨리 정보를 캐치해서 보내줘야 좋습니다.
이더리움 지갑이 풀 소프트웨어에 자동으로 알림을 주는 것과
풀 소프트웨어가 몇 초에 한번씩 이더리움 지갑에 조회하는 2가지 방식이 혼재되어 있는데요
사실 둘 중 하나만 있어도 잘 작동합니다.
I/O 문제도 심하고 이더리움 지갑의 부하를 조금이라도 줄여보고자 지갑 조회 간격을 좀 더 늘렸었습니다.
이더리움 지갑이 풀 소프트웨어에 자동으로 알려주는 이 로직이 parity 가 버젼업 하면서 바뀐 것인지
이전보다 훨씬 느리게 온다는 것을 뒤늦게 발견했습니다.
그래서 이것도 원래 설정으로 원복하고 다시 풀 서버를 재시작 했습니다.
이 또한 블럭의 uncle rate 를 평소보다 훨씬 높인 요인 중 하나입니다.
이번에 서버 재시작과 함께 채굴량 감소 현상이 나타났는데 이는 높아진 uncle block 요인이 큽니다.
참고로 uncle block 자체가 나쁜 것은 아닙니다.
매우 비효율적이어서 uncle block 이 나올 수도 있고 매우 효율적이어서 uncle block 이 나올 경우일 수도 있습니다.
이번에는 비효율적이어서 정상 block 이 될뻔한 것들이 uncle 판정을 받은 것입니다.
4. 향후 재발 가능성은?
풀에서 서버 접속이 끊기는 것은 앞으로도 늘 일어날 수 있는 현상입니다.
그래서 유형과 대처에 대해 상세히 적은 것입니다.
안타깝게도 오늘 내일도 마무리 작업 때문에 서버 재시작은 종종 발생할 예정입니다.
접속이 안 끊기도록 하기 보다는 접속이 끊겨도 스스로 잘 복구되도록 만드는게 일반적인 개발 방향입니다.
하지만 I/O 문제나 기타 다른 성능과 채굴과 관련된 이슈들은 재발하지 않도록 구조를 많이 바꿨습니다.
고성능 프록시와 국내 서버를 시범적으로 도입하였고 시범 기간을 거쳐 괜찮다면 정착할 것입니다.
5. 이슈 대응
서버 차원에서는 재시작 간격을 최대한 넓혀서 너무 몰아서 재시작하지 않도록 하겠습니다.
마이너 분들은 재접속이 잘 되도록 네트워크를 체크하시고
페일오버 설정도 추가하셔서 다른 풀에 붙어서 쭉 이어서 채굴하시기 바랍니다.
요즘 진입하신 분들은 페일오버 기능을 잘 안 쓰시는것 같은데요..
페일오버는 1차 풀에 접속이 안될 때 2차, 3차 서버에 자동으로 접속하는 유용한 기능입니다.
대부분의 마이너가 제공하는 기능이기 때문에 한번쯤은 들어보셨을 것입니다.
다른 풀 정보를 찾거나 계정 관리가 귀찮다면
마이닝풀허브의 미국이나 유럽 서버라도 넣으시면 훨씬 낫습니다.
6. 마무리
수익이 걸린 문제라 좀 민감할 수 있는 것을 알고 있습니다.
또 채굴기 관리 때문에 지속적으로 채굴장에 오고가는 분들도 있다는 것도 알고 있구요.
요즘 낮아진 I/O 성능으로 인해 채굴량이 줄어들은 분도 계실 것입니다.
불편을 끼쳐 다시 한번 죄송합니다.
공지가 늦어진 점은 서버 관리 작업과 테스트, 안정화가 오래 걸려서입니다.
실시간으로 블럭 발견하는 통계를 체크하고 어디서 문제가 생겼는지 원인 파악에도 시간이 오래 걸렸구요.
현재 운영하는 서버가 80대가 넘고 그 중 상당수를 순차적으로 옮기거나 재시작을 해야만 했습니다.
4월 30일부터 잠을 제대로 못자고 현재 5월 3일 새벽 4시에도 서버 4대를 추가로 세팅하고 있습니다.
개인적으로는 체력적으로도 심적으로도 고단하고 힘듭니다.
예전에도 썼던 적이 있는데 풀에 문제 생기면 빨리 고칠려고 긴장하고 심장이 쿵쾅거리고 그렇습니다;;;
마이닝풀허브는 늘 더 드리면 드렸지 탐욕적이었던 적은 없었던것 같습니다.
이더리움 오출금, 뮤직코인 하드포크, 대시 보너스, 일렉트로니움 재전송, 페더코인 포크이슈 등
풀의 문제인 경우도 있었지만 설사 코인 버그가 있었더라도 풀에서 최대한 보상을 해드렸었습니다.
서버 재시작 이슈와 채굴량 감소에 대해 좀 더 자세한 검토 후에 보상안에 대해 공지할 예정입니다.
덧)
마이닝풀허브에 관련된 것은 여기 게시판에 적어주시기 바랍니다.
마이닝풀허브 게시판에 올리신 글은 제가 다 읽습니다.
채굴 게시판은 일반적인 채굴 관련된 글이기 때문에 제가 읽지 못하고 지나칠 수 있습니다.
감사합니다.
아이언맨이네요!