서버를 좀 더 알아보자 - 2
안녕하세요, 지난번에 서버에 대한 개념을 조금 확장해보는 시간을 가졌습니다. 이번에는 서버 특히 유닉스 그 중에서 AIX를 제어 및 관리하는 구조에 대해서 알아보겠습니다.
왜 많고 많은 운영체제 중 요즘 트렌드라고 할 수 있는 리눅스가 아니라 유닉스 그것도 AIX에 대해서 알아보려고 하느냐고 물어볼 수있는데 우선, 제가 관여하고 있는 고객사들 중 아직 상당수가 유닉스 그 중에서 AIX 서버를 운영하고 있기 때문이기도 하고 , 일단 유닉스를 알면 리눅스에 구조에 대해서도 파악이 용이하기에 좀 더 형님격인 유닉스에 대해서 알아보려고 합니다.
유닉스는 C언어 베이스로 만들어졌기 때문에 바로 프로그래밍을 할 수 있는 최상의 환경을 제공하고, 처음부터 다양한 시스템 사이에서 서로 이식할 수 있으며 멀티 태스킹과 다중 사용자를 지원하도록 설계되었습니다. 유닉스 운영체제가 개발될 당시 이는 혁명과도 같은 기능들이었는데요, 이런 유닉스의 강력한 기능을 몇몇 IT 벤더사들이 커스터마이징 해서 상용버전으로 만들었습니다. 그래서 만들어진 대표적인 유닉스가 HP의 HP-UX, IBM의 AIX ,썬마이크로 시스템즈의 솔라리스 등인데요. 리눅스와 가장 크게 구분되는 것 중에 하나가 이런 벤더들에 의해 나온 유닉스 운영체제들은 벤더들이 운영체제 운영 중에 발생한 에러들에 대해 다양하고 폭넓은 레퍼런스를 제공하고 있고, 트러블슈팅도 지원하고 있습니다. 이것은 서버를 운영하는 시스템 엔지니어에게 큰 버팀목이자 구원자 같은 것인데요, 쉽게 말해 벤더사의 운영체제를 사용하다 문제가 생기면 운영체제 자체에 문제가 생기면 시스템을 운영하는 엔지니어가 이나라 벤더사에서 트러블슈팅을 지원하고 해결까지 해준다는 것이죠.
하지만 2022년 현재, 유닉스 서버는 시대의 흐름인 오픈소스, 클라우드에 대처하지 못해 시장에서의 점유율은 거의 없어지는 추세입니다. 그래도 리눅스에 친숙한 엔지니어라면 그 차이점을 비교해보고, 유닉스 운영체제 자체가 흥미가 있다면 이글은 조금이라도 도움이 되지 않을까 싶습니다.
전통적인 유닉스 디스크 저장장치는 시스템에 디스크를 추가할 때, 관리자가 파일과 디렉토리가 포함된 파일 시스템을 만들기 위해서 직접 디스크를 파티션으로 나눠야 했습니다.
파티션의 사이즈를 추가하려면, 사용자는 시스템을 종료하고, 크기가 변경되는 파티션이나 이 파티션 변경의 영향을 받는 모든 파티션의 데이터를 백업하며, 디스크를 다시 파티셔닝하고, 데이터를 복구해야만 시스템을 다시 사용할 수 있었습니다. 그래서 시스템이 한가한 밤에 작업을 주로 했고, 만약 서비스 운영시간 중에 시스템 자원이 부족하게 되면, 관리자는 동적으로 공간을 추가 할당할 수가 없었습니다. 결국 자원할당을 위해 시스템을 종료해야 되는데 이는 번거롭기도 하고 위험하기도 한 작업이죠.
게다가 파일 시스템과 파티션에 관해서는 몇 가지 제약사항이 있었습니다. 연속된 공간이 필요했기 때문에, 여러 개의 디스크에 걸쳐서 만들 수가 없었는데, 그래서 파일 시스템의 크기에 한계가 있었고, 큰 파일 시스템의 경우 가장 큰 디스크에 할당해야만 했습니다. 결국 파티션의 크기를 변경하는 것은 너무 힘들었고, 디스크 관리를 위해 항상 계획을 세워야 했는데 이 마저도 운영 중에 생기는 수많은 변수에 대응할 수 없었습니다.
전통적인 유닉스 디스크 저장장치의 문제점을 간단하게 정리하자면 아래와 같이 요약할 수 있겠네요.
고정된 파티션 파일 시스템 크기의 제한 연속된 공간으로만 디스크 할당이 가능 디스크 변경에 계획 및 시간 즉 공수가 많이 들어감 |
상용 유닉스 중 AIX에서는 논리적볼륨관리자(LVM)라는 관리시스템으로 전통적인 유닉스 디스크 저장장치의 문제점을 해결했는데요, LVM은 디스크 공간을 논리적 레벨에서 관리합니다. 논리적 공간과 물리적 공간을 연결함으로써 비연속적인 공간에 데이터를 저장하고, 다수의 디스크에 걸쳐서, 복제하고, 동적으로 공간을 늘리며 하드 디스크를 관리합니다.
이제 LVM 관점에서 디스크를 구분해보도록 하겠습니다. 물리적 저장장치는 (하드)디스크를 말합니다. LVM 용어에서 물리적 볼륨(PV)이라고 합니다. 물리적 볼륨은 물리적 파티션(PP)으로 나뉩니다. 이것은 AIX에서 디스크 공간 할당의 기본 단위가 됩니다. PP의 기본 크기는 4MB입니다.
PV는 VG에 속합니다. VG는 최소한 하나의 PV에서 32PV까지를 포함합니다. 하나의 PV는 오직 하나의 VG에만 속할 수 있습니다. VG에 속한 모든 PV는 같은 PP 크기를 갖게 됩니다.
시스템을 설치할 때, 첫 볼륨 그룹이 생성되는데 rootvg입니다. rootvg를 이루는 PV는 설치할 때, 선택하는 디스크에 의해 결정됩니다. rootvg는 시스템을 시작할 때 필요한 논리적 볼륨들과 설치하는 스크립트에서 결정된 다른 논리적 볼륨들로 이루어지기 때문에 내장 디스크로만 구성하는 것이 좋습니다. 만약 새로운 PV가 추가될 때에는 rootvg에 추가하거나 PV를 이용해 새로운 VG를 생성하여 추가할 수 있습니다. 시스템당 255 볼륨 그룹까지 포함할 수 있습니다
볼륨 그룹을 생성한 후에는. 볼륨 그룹 내에서 논리적 볼륨을 만들 수 있습니다. 데이터가 실제로 저장되는 디스크의 최소 할당 단위인 물리적 파티션과 논리적 파티션의 사이즈는 같습니다.
논리적 볼륨은 하나 혹은 여러 개의 논리적 파티션의 집합으로 이루어지며 여러 개의 PV에 걸쳐서 생성할 수 있습니다. 여기서 중요한 것이 모든 PV는 같은 볼륨 그룹(VG) 내에서 확장해야 한다는 부분입니다.
AIX 운영체제를 설치할 때, 논리적 볼륨은 자동으로 생성됩니다. 논리적 볼륨을 만들 때, 운영체제에 의해서 공간이 할당됩니다. 제일 처음 논리적 볼륨을 정의할 때, 상태(LV STATE)는 close로 됩니다. 논리적 볼륨에 파일 시스템이 생성되고 마운트될 때는 open됩니다. 논리적 볼륨을 만들고, 아무것도 저장하지 않을 수도 있습니다. 이건 raw 논리적 볼륨이라고 합니다. 주로 데이터베이스가 raw device를 사용합니다.
이제 할당된 볼륨에 파일을 저장하기 위한 방법을 알아보겠습니다. 파일 시스템은 파일을 저장하는 디렉토리 구조입니다. 일반적으로, 각 파일 시스템은 관련된 파일과 디렉토리를 모아 놓고 있습니다. 다양한 파일 시스템이 하나의 루트와 함께 마치 하나의 파일 트리처럼 모여 있습니다.
이 파일 구조를 이용해 데이터를 찾고 탐색할 수 있습니다. 시스템 관리자는 각 파일 시스템에 적당한 디스크 공간을 할당합니다. 만약 파일 시스템 공간이 부족하면, file full 오류가 발생하면서, 더 이상의 데이터가 파일 시스템에 추가되지 않습니다
파일시스템을 간단하게 요약하자면,
데이터 저장방법 디렉토리 계층구조 디렉토리를 통해 연결되어 사용자가 볼 수 있는 파일의 모습으로 변환 |
저널파일시스템(JFS) CD-ROM 파일시스템(CDRFS) 네트워크 파일시스템(NFS) |
아래 그림과 같이 파일시스템의 종류는 여러가지가 있습니다.
파일시스템마다 용도가 다르지만 시스템을 운영하는데 중요한 몇가지 파일시스템에 대해서 알아보겠습니다.
종류 | 저장위치 | 설명 |
루트(/) | /dev/hd4 | 루트(/) 파일 시스템은 논리 볼륨 /dev/hd4에 마운트 됩니다. 이는 계층 파일 트리의 맨 위에 위치합니다. 루트 파일 시스템은 부팅을 위한 디바이스 정보와 프로그램을 포함하며, 시스템 운영을 위해 중요한 파일과 디렉토리를 포함합니다. 다른 기본 파일 시스템의 마운트 포인트는 이 파일 시스템 하부에 위치합니다 |
/home | hd1 | /home 파일 시스템은 논리 볼륨 /dev/hd1에 마운트 됩니다. 여기에는 홈 디렉토리와 사용자 파일 및 디렉토리가 저장됩니다. |
/usr | hd2 | /usr 파일 시스템은 논리 볼륨 /dev/hd2에 마운트 됩니다. 여기에는 운영 체제 명령, 라이브러리, 그리고 응용 프로그램이 들어 있습니다. 동일한 하드웨어 구조를 가진 시스템과 공유할 수 있는 파일도 이 파일 시스템에 위치합니다. |
/var | hd9var | /var 파일 시스템은 논리 볼륨 /dev/hd9var에 마운트 됩니다. 크기가 가변적인 파일들이 이 파일 시스템에 포함됩니다. /var 파일 시스템은 시스템 사용에 따라 크기가 변합니다 |
/tmp | hd3 | /tmp 파일 시스템은 논리 볼륨 /dev/hd3에 마운트 됩니다. 이 파일 시스템은 시스템이 생성한 임시 파일을 포함합니다. 디폴트로, /tmp 디렉토리는 비어 있는 디렉토리지만, 사용자는 임시로 파일을 저장할 수 있습니다. 시스템은 이 공간을 시스템 작업을 위한 버퍼로 사용하기 때문에 주기적으로 정리해 주어야 합니다 |
/proc | /proc | /proc 파일 시스템은 AIX 버전 5 이상에서 지원하는 파일 시스템으로, 이 파일 시스템은 프로세스와 커널 데이터 구조를 대응하는 파일에 대응됩니다. 이 파일 시스템에는 각 프로세스 마다 프로세스 ID와 똑 같은 이름을 가진 디렉토리가 지정되어 있습니다. 이 디렉토리에는 내부 프로세스 제어 데이터 구조에 대응하는 여러 개의 파일과 서브 디렉토리가 생성됩니다. 이 파일 가운데 일부는 읽기 전용이며, 나머지는 프로세스 제어용으로 사용될 수 있습니다. |
이상으로 유닉스 AIX 서버의 디스크 관리 저장장치와 관리하는 파일시스템에 대해서 알아보았습니다.
다음에는 파일시스템을 관리하여 자원을 관리하는 방법에 대해 알아보겠습니다.