Technical Architecture/OS_시스템 아키텍처 기본

1-2 기본아키텍처 (온프레미스)

seongduck 2022. 11. 3. 00:16

스토리지 아키텍처

스토리지-서버 간 연결 방식

DAS(Direct Attached Storage) - 스토리지와 서버를 직접연결

  • 스토리지에는 포트가 많지 않기에 연결되는 서버가 많아질수록 DAS로는 부담스럽다.

 

SAN(Storage Area Network) - SAN스위치 장비 (비용, DAS비해 덜 경재적)

  • 서버, 스토리지에서 나오는 케이블을 SAN스위치가 받고 새로 채널을 연결해준다.
  • 연결된 서버가 많을 수록 DAS보다는 SAN이 효율적이다.
  • 하나의 포트를 2개이상 서버가 공유가 가능하다.
  • 단점은 SAN 스위치 유지보수 및 비용!!

 

NAS(Network Attached Storage) - DAS와 SAN은 LUN이라는 Block Device를 할당받는 방식(공유시 별도 솔루션 필요)

  • NAS는 네트워크로 공유하는 방식이다.
  • 같은 파일 시스템을 여러 서버가 공유해서 사용할 수 있다는 점이다.
  • DAS나 SAN은 공유할 수 있지만 그때는 별도 솔루션이 필요하다.
  • DAS나 SAN이 스토리지 전용 채널을 쓰지만 NAS는 네트워크를 사용한다.
  • 즉, 대역폭을 많이 소모하게 된다.

 

외장 스토리지 아키텍처 도식화

물리적 Disk는 쉬지 않으므로 고장날 가능성이 있다. !! (사람도..)

기업의 중요 데이터가 있는 disk는 1~2장이 고장이 나도 데이터가 유지할수 있도록 RAID가  구성되어 있다

데이터를 쓸땐 스트라이프라고 해서 논리볼륨(LUN)을 생성한다.

 

Q. 스트라이핑(Striping)이 모에욤??

A. 실제 디스크는 01조금, 11조금, 21조금 이렇게 펼쳐서 쓴다. i/o에러시 여러개의 디스크를 한번에 동작하므로 성능이 훨씬 좋아진다.

 

전체 디스크가 하나의 큰 논리볼륨이 된다.

이를 서버에 할당하기 위해선 논리적으로 나누는데 이를 LUN이라고 한다.

어떤 크기로 나누는지는 자유!!이며 LUN의 한 칸을 100GB로 나눴다고 가정해보자!

.

노란색은 12개, 주황은 6조각을 1통으로, 연두색은 9조각, 이렇게 서버에서 필요한 만큼 LUN을 쪼개서 나누어줄 준비를 한다.

컨트롤러 FA 포트가 있는데 이는 채널 이중화를 위해 2개로 구성되어 있다.

HBA가 고장나더라도 다른쪽 채널에서 데이터를 송수신할 수 있다.

 

포트에 FC 케이블 꼽고 반대편에 서버 HBA를 연결하면 서버에서는 노란색으로 할당한 12개를 인식할 준비가 완료된다.

WWN이라는 HD고유 주소를 노란색 볼륨에 할당한다. ( 아~ 내가 갈 곳은 첫번째 HBA카드이구나 인식)

이때 자신한테 12개가 달려있다고 인식한다. 일반디스크 사용하는 것처럼 사용 가능하다!!!

 

WWN이라고 공장에서 박혀 나오는 HBA의 고유주소이다.

서버에서 저장한 데이터는 여러단계 레이어를 타고 물리적 DISK어딘가에 저장된다.

데이터 사용하는 사람은 전혀 신경쓸 필요가 없다.

중간에 케시가 있어서 스토리시 성능을 향샹시킨다.

 

서버와 스토리지 사이에 SAN스위치가 놓일 수 있다.


SAN 구성 도식화

서버와 스토리지 간 연결을 위한 스위치는 !! SAN스위치!!

SAN스위치 내부에서 서버와 스토리지 간 Rounting을 구성하는 작업을 Zoning !! (교통경찰 역할...?)

 

노란색 볼륨을 맨 왼쪽에 할당했었다. 이번에도 노랑이를 맨 왼쪽에 할당해보자.

스토리지 FA-Port에서 LUN은 A에 연결되어 있고 SAN스위치 2번에 연결되어 있다!

서버A는 SAN스위치 1번에 연결되어있고 이중화가 잘 되어있다!!

SAN 스위치에 1번, 2번 서로 문을 열어줘~ 라고 한다. 포트를 묶어주는데 이를 Port Zoning!!

-> PortZoning을 진행하면 LUN#A가 서버A에서 인식하게 된다~

 

초록색 LUN은 B번에 연결되어 있고 이는 SAN 스위치의 5번에, 서버 B,C는 3,4번 포트에 연결되어 있다.

서버B의 WWN이 응~ 우린 한 가족이야하고 FA-B포트와 서버B의 WWN을 WWN Zoning!!

-> WWN Zoining을 진행하면 LUN#B가 서버B에서 인식!!

-> 서버B에 있는 가상화된 VM에 할당하고자 할 때 쓴다!!

 

당연한말이지만 서버 C도 WWN Zoining을 하면 서버C가 LUN#B를 보게된다.

 

포트 하나를 가지고 각각 다른 서버에 할당할 수 있다.!?!?!?

LUN B는 서버B, LUN C은 서버 C에 되어있을 때 할당이 가능하다.!! 

 

바로바로!!

하나의 FC 포트를 연결하여 여러개의 가상머신에 할당하는 것을 논리 파티션을 이용 = N_Port ID virtualizition

(속닥속닥 참고.... 실제 SAN 스위치는 24~48개 정도 포트를 가지고 있음)

LUN#B를 서버 B,C에 동시에 할당가능!!

 

WWN Zoning을하면 다른 포트에 꼽아도 (케이블을) 가능하다!!!

(3번 포트를 6번 포트에 꼽아도 조닝이 유지된다.)

 

하지만....

HBA카드 교체시는 당연히 WWN이 바뀌니까 Zoning을 다시 한다.

 

Port Zoning은 반대이다.

케이블을 다른 포트에 꼽으면 조닝을 다시해야한다.

(1번 -> 6번시 다시 조닝을 해야한다.)

 

스토리지 채널 이중화

모든 채널이 이중화 되어있는 것이 기본이다!!!!

스토리지에서 이중화가 되서 케이블 2가닥으로 서버와 연결되면 서버에선 디스크가 2개인것처럼 보인다.

같은 디스크지만 채널 하나하나마다 따로따로(HBA #1, #2) 보이게 된다.

이중에 하나만 가지고 만들어 쓰면 실제론 한쪽채널만 사용하는 것이다.

내가쓰고 있는 채널에 문제가 생기면 디스크는 접근이 불가해진다.

 

채널 이중화된 디스크는 이중화 솔루션으로 이중화를 해야한다.

(리눅스는 멀티패스 라는 소프트웨어를 사용하면 된다.)

2개로 보이는 것 외에 가상의 경로가 하나 생기는데 이 path로 디스크를 연결한다.

 

sdo sdu sdc sdi는 실제로 같은 디스크이다.

소프트웨어로 이중화했더니 dm-3라는 디바이스로 묶여서 이를 디스크로 사용하면 된다.

멀티패스는 원하는 이름으로 별칭할 수 있다. dm-3에서 data6으로

 

SAN 환경에 주로 사용하는 인터페이스 비교

  • FC =  광케이블 
  • ISCSI = 네트워크 기반 스토리지를 연결한다. (LAN으로) - TCP/IP이다보니 느리다는 단점이 있다.
  • INFINIBAND = 대용량, 엄청나게 빠르다. 가까운 거리 장비끼리 고속의 연결을 지원한다.

네트워크 아키텍처

네트워크 연결

  • 컴퓨터와 네트워크는 Network Interface Card = Ethernet Card ( NIC)가 담당한다.

요로케 생긴거!!

 

NIC는 네트워크 스위치와 서버의 연결을 담당하는 장치이다!!

NIC에 IP를 할당해서 LAN통신이 가능하도록 하는 것이다.

NIC에는 MAC Address라는 고유의 주소체계가 부여된다.

 

네트워크 연결에 사용되는 인터페이스

  • FC는 광케이블, 스토리지에서 사용하는 것과 같다

 

FC 케이블 비교

 

L2/L3/L4 스위치

  • 컴퓨터는 NIC와 스위치를 연결하여 네트워크를 사용할 수 있다.
  • OSI 7계층 구조 중 어느 레벨에서 동작하는에 따라 아래와 같이 구분된다.

 

L2 스위치 : 데이터링크 여기에는 IP가 없다. 따라서 IP를 따라 목적지를 찾아가는 것이 아니다.

L3스위치 : 네트워크 계층에서 동작을 한다., IP를 인식할 수 있으며 적절한 다른 네트워크로 라우팅이 가능하다.

L4스위치 : TCP,UDP가 쓰인다. 이런 포트를 보고 적절한 포트로 패킷을 전송한다.

L7스위치 : 보안기능, L4스위치보다 정교한 로드 밸런싱이 가능하다.

 

L2 / L3 /L4구성도

  • L4스위치는 DMZ영역의 웹서버의 로드벨런싱을 진행하고 있다.
  • 방화벽과 IPS사이에 있는 L2스위치는 라우팅 기능은 없고 단순히 장비 연결을 담당
  • L3스위치는 워크그룹 스위치(네트워크 대역 다다름) 적절한 네트워크로 라우팅해준다.

 

라우팅 (Routing)

  • 목적지 IP를 보고 적절한 경로로 패킷을 송부하도록 지성하는 것

라우터는 라우팅 테이블을 보고 적절한 대역으로 데이터를 보낸다.

 

OS에서 라우팅 확인

  • WINDOWS에서는 TRACERT 
  • linux에서는 traceroute명령어 사용
  • 라우팅 추적을 통해 어디가 문제인지, 방화벽인지, 라우터 문제인지 찾을 수 있다.

 

서브넷 (Subnet)

  • 네트워크를 효율적으로 사용하기 위해 하나의 대역을 여러 개로 나누는 것

( /24 대역) 0~255까지 256개 대역을 의미한다. 맨앞,맨뒤는 못쓰므로 254개 사용가능

( /25 대역) 방금 선언한 것을 반으로 쪼갠것 0~127개 128개 대역인데 앞뒤 짜르고 126개

점점점 대역은 반토막씩 작아진다.

반대로 23, 22 이렇게 되면 대역의 크기는 2배씩 커진다.

 

호스트가 사용할 수 있는 주소를 뺴고 모두 1인것은 netmask라고 한다. 1이 24개다. (/24, 24비트)

 

/26짜리 대역의 넷마스크는 255.255.255.192이다. 2진수로 바꾸면 1이 26개이다. 32 - 26 = 6.

2^6은 사용할 수 있는 대역은 64개 (앞뒤 2개빼면) 62개

 

Teaming(Bonding)

  • 네트워크 인터페이스 이중화를 위해 NIC도 이중화 작업을 실행해야한다. 

윈도우즈에서는 티밍이라고 한다.

각각의 스위치에서 오는 두개의 케이블은 2개의 NIC로 들어오고 이를 티밍으로 묶어주면 가상의 NIC 하나가 생긴다.

 

 

가장 중요한 2가지

FCoE ( Fibre Channel Over Ethernet)

  • 네트워크 연결에 쓰이는 NIC와 스토리지 연결에 쓰이는 HBA를 대역폭이 큰 하나의 채널로 묶어버리는 것
  • 블레이드 서버라고 해서 책꽂이게 꼽아쓴느 장비가 있다.NIC, HBA를 통합하는 기술이라고한다.

 

DPDK (Data Plane Development Kit)

  • 네트워크 패킷을 OS를 통하지 않고 NIC로 넘겨버리는 기술이다.
  • OS가 따라가지 못하므로  전용 라이브러리, 드라이버를 제공해서 NIC로 패킷을 보낸다. 
  • 어플에서 별도의 구현이 필요하긴 하다.