ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [컴공기초] 물리 서버의 구성 방식과 데이터 전달, 처리 방식
    IT/컴퓨터 공학 지식 2021. 9. 30. 20:26
    728x90
    SMALL

    소프트웨어를 통해서 컴퓨터라는 것을 먼저 접하게 된 나는, 소프트웨어를 구현하면서도 하드웨어에 대한 궁금증이 늘 많았다.

    그래서 소프트웨어가 올라가는 하드웨어에 대해서 공부를 해보았다.

     

    1. 물리 서버의 내부 구성

    우선 우리가 숨쉬듯 자연스럽게 사용하고 있는 모바일 앱을 생각해보자. 우리는 모바일 앱을 멈추지 않고 24시간동안 사용할 수 있다. 당장 카카오톡 어플로 밤새 누군가와 대화를 할 수도 있고, 밤에 자다가 깨서 잠이 안올 때, 넷플릭스나 유튜브를 시청하면서 시간을 보내곤한다.

    어떻게 이게 가능할까? 바로 서버가 존재하기 때문이다. 서버가 존재하기 때문에 어플에서 사용하는 모든 데이터를 저장할 수도 있고, 그 데이터들을 24시간 읽을 수도, 변경할 수도 있다. 그런데 이 서버라는 존재는 우리가 어플을 이용하면서 눈에 보이지 않기 때문에 실제로는 어떻게 생겼고, 어떻게 동작하는 지 알수가 없다. 

     

    실제로 서버는 rack이라는걸로 이루어져있다고 한다. 랙이라고 읽는데, 밑에 사진처럼 생겼다.

    출처 : https://kdtidc.kr/wp/product/%ED%92%80%EB%9E%99-full-rack-colocation/

    밖에 케이스(?)가 바로 랙이다. 이 랙안에 네트워크 장비(스위치), 서버, 스토리지 등등이 들어가있다. 실제로 이렇게 물리서버가 들어가있고, 여기에 각종 포트를 연결시켜서 외부에서 들어오는 요청들을 처리하는 방식이다. 여기 들어가는 서버에는 우리가 아는 PC에 들어가는 부품들이 똑같이 들어간다. 단, 여러 사용자의 요청을 받아들여야 하므로, 일반 개인 PC보다 "대용량"으로 들어간다. 해당 부품들이 어떤 용도로 어떻게 사용되고 있는지 알아보자.

     

    2. CPU

     CPU는 역시나 두뇌 역할을 하는 중요한 장치이다. "중앙처리장치"라고 하며, 영어로는 "Central Processing Unit"이라고 한다. 우선 최근에 나오는 CPU는 모두 "멀티 코어"이다. 여기서 말하는 코어는 한 작업을 수행할 수 있는 단위이다. 코어 수가 많아질수록 연산의 속도는 빨라진다. 듀얼 코어는 코어 수가 2개, 쿼드 코어는 코어 수가 4개, 옥타 코어는 코어 수가 8개가 달려있다. 

     

     그리고 또 하나의 특징은, 중앙에서 연산을 하는 장치인 만큼, 전기 신호를 많이 처리하기 때문에 발열이 있다는 점이다. 컴퓨터를 오래 사용하면 발열이 일어나는데, CPU가 있는 부분이 뜨거울 것이다. 그래서 열을 낮추기 위해서 팬도 들어가고, 냉각기도 설치된다. 그런데 최근에 나온 애플의 M1 CPU는 최적화를 통해서 발열을 잡았고, 심지어 M1 Macbook Air에서는 팬을 빼버리는 과감한 선택도 했다. 굉장히 대단한 CPU임에는 틀림없다. 인텔이 분발해야할 듯 하다.

     

    3. RAM

     RAM은 주기억장치로, 위치 상으로 CPU 바로 옆에 위치한다. RAM은 CPU와 직접 통신을 하는 가장 중요한 장치이다. CPU가 전달하는 값을 받거나, CPU에게 값을 전달하는 역할을 해야하기 때문에 가장 가까운 곳에 놓고 빠른 속도로 액세스한다.

     

     CPU에서는 최대한 RAM에 빠르게 접근하려고 하는데, 이 때 메모리 인터리빙이라는 것을 사용한다. CPU에는 메모리 컨트롤러라는 것이 존재하는데, 이 메모리 컨트롤러에는 "채널"이 여러개 존재한다. 이 채널이라는 것을 통해서 RAM과 통신을 하게 된다. 이 때, CPU에서 채널을 통해서 RAM에게 데이터 1을 요구하면, 데이터 2, 3을 RAM에서 같이 줘버린다. 그러면 CPU는 2,3을 이미 받아서 갖고 있으므로 요청시간이 줄어든다. 결과적으로 미리 받아서 처리 시간을 줄이는 것이다. 이를 메모리 인터리빙이라고 한다.

     

    3. 하드 디스크 드라이브

     흔히 말하는 HDD가 하드 디스크 드라이브이다. 원판과 원판을 읽는 레코드 바늘이 있다. 전기 신호가 들어오면 원판이 돌고, 레코드 바늘이 원판의 데이터를 읽고 쓰는 역할을 한다. 하지만 최근에는 SSD라는 좋은 하드디스크 장치가 나왔다. SSD는 RAM처럼 반도체로 만들어져서 데이터 하나를 읽기 위해서 원판이 돌지 않아도 되고, 원하는 데이터에 바로 접근할 수 있다. 그래서 속도가 HDD보다 훨씬 빠르다. 그렇지만 SSD도 영구적 파일을 저장하기 위한 장치라는 점에서는 본질적으로 다르지 않다.

     

     하드 디스크 드라이브도 RAM과 같은 저장장치이지만, 휘발성 데이터만 저장하는 RAM에 비해 하드디스크는 영구적인 데이터를 보존한다. 전기 신호가 꺼져도 계속 존재하는 데이터를 저장하는 것이다. 그래서 노트북을 껐다가 켜도 그 안에 있는 파일은 그대로 존재한다.

    이 하드 디스크 드라이브는 CPU에서 조금 먼 곳에 떨어져 있는데, 오래 보존할 데이터를 저장하는 것이 목적이므로 RAM에 비해 CPU와 통신하는 일이 적다. 그래서 조금 먼거리에 배치해두고 속도가 느려도 되는 작업들에 대해서 처리한다.

     

    4. 스토리지 (저장소)

    스토리지라고 부르는 저장소는 대량의 HDD의 묶음이라고 생각하면 편하다. 그런데, 스토리지에는 CPU가 존재한다. 그래서 RAM처럼 고속으로 I/O(읽고 쓰기)가 가능하다. 고속으로 I/O가 가능한 이유는 캐시가 존재하기 때문이다. 캐시에 데이터를 저장해두기 때문에, 상대적으로 고속으로 접근할 수 있다. 이 때, 쓰기 처리와 관련된 I/O 방법이 두가지가 있다. 첫 번째는 "라이트 백(write back)"이라는 거다. 이게 뭐냐하면, 캐시에 액세스를 하는데, 캐시에 저장하고 나서 쓰는 작업을 그냥 종료해버린다. 다른 하나는 "라이트 스루(write through)"라는 것이다. 이 놈은 캐시하고 HDD에 모두 액세스해봐서 write back하고 비교해서 더 확실한 쪽에다가 쓰기 처리를 하려고 액세스를 한다. 기본적으로는 write back을 많이 사용한다고 한다.

     

    5. 네트워크 인터페이스

    네트워크 인터페이스는 말 그대로 네트워크를 담당하는 인터페이스다. 인터넷을 연결할 때 쓰는 랜선을 꽂는 곳이 여기에 있다.

     

    6. 버스

    버스하면 떠오르는 것은 대중교통일 것이다. 물리 장치에서 버스 역시 부품간에 통신을 위한 통로, 즉 회선을 의미한다. 같은 일을 하는 부품들의 묶음들을 "컴포넌트"라고 하는데, 이 컴포넌트들 간의 연결을 버스를 통해서 한다. 버스는 대역이라는 것을 가진다. 대역은 원래 의미대로면 주파수가 가지는 대역을 의미하는데, 여기서는 버스가 "데이터를 얼마나 전송할 수 있는가?"를 의미한다. 한 번에 데이터를 얼마나 보낼 수 있는가 (전송폭) + 1초에 전송할 수 있는 횟수가 얼마나 되느냐에 따라서 버스가 얼마나 좋은지 결정된다.

     

     여기서 중요한 것은 버스가 CPU와 가까운 쪽이 1초당 전송량이 크다는 것이다. 왜냐하면 CPU 근처에서는 데이터들이 대량으로 통신하고 있기 때문에 빨라야한다. 그래서 CPU와 가까운 곳에는 1초당 전송량이 큰 버스를 배치하고, CPU와 멀어질수록 전송폭이 큰 버스를 배치한다고 한다. 그래서 CPU와 가까워질수록 고속이고, 멀수록 대용량이라는 것을 알 수 있다.

     

     

    여기서 알 수 있는 것은, 오늘 알아본 6가지 모두 우리 PC에 동일하게 있다는 것이다. 맨 위에서 언급했듯이 개인 PC와 다르게 서버 PC는 수많은 사용자의 요청을 받아들여야하고 처리해야한다. 따라서 개인 PC보다 훨씬 대용량인 부품들이 들어가있다는 차이점이 있다.

    그리고 오늘 포스팅에서 주요하게 나왔던 단어가 "통신"이라는 건데, 이 통신이라는게 어떤건지 다음 포스팅에서 알아보자.

    728x90
    LIST

    댓글

Designed by Tistory.