지금의 웹서버를 유지하면서 하드를 추가하고싶습니다.

heisenjoy의 이미지

CentOS, Apache, Mysql을 이용하여 웹서버를 구축하였습니다.
서버에는 200GB 용량의 하드디스크가 1개 달려있습니다.
자료정리중 200GB만으로는 부족하게되어 새로 하드디스크를 구입하여 서버에 추가할 예정입니다.
현재 구축된 서버를 유지하면서 용량만 추가로 확장할 수 있는지요?

A라는 하드디스크에 서버가 구축되어있는 상황에서 B라는 새로운 하드디크스를 추가 후, 하드디스크 B에 새로운 웹서버를 구축하여 기존 웹서버에서 링크거는 방식을 생각해보았습니다.
하지만 이렇게 할 경우 A에 구축된 웹서버의 카테고리(데이터를 카테고리별로 정리하였습니다.)에는 더이상 데이터를 추가할 수 없다고 생각되기에 질문드렸습니다.

dgkim의 이미지

200GB라는 거대한 용량의 자료라면, 동영상 자료?...

파티션 구조를 알려주시거나, 향후 구축 방향 같은 것이 있어야 조언(같은 조언)을 드릴 수 있습니다.

간단히 서버에 구멍만 남아있으면, 당연히 디스크 추가는 가능하겠지요?

서버 구성을 어떻게 하였냐에 따라 다르겠지만,

가장 간단한 방법이라면,

파일시스템 기반으로 자료를 관리하시면,
DocumentRoot에 new란 디렉토리를 만들고 신규로 장착한 디스크의 파티션을 new란 디렉토리에 마운트하면 간단하게 해결되겠지요?

데이터베이스에 저장하여 관리하신다면,
추가한 디스크에 대하여 MySQL의 설정에 데이터 파일 추가를 구성하면 되겠지요?

heisenjoy의 이미지

답변 감사합니다.
현재 서버에 동영상, 문서, 사진 등 여러 자료가 존재하며, 그 대부분의 용량은 동영상이 차지합니다.
파티션은 /(최상위 루트 디렉토리)와 swap의 2가지 파티션만 존재합니다.
Apache 및 DB가 존재하는 /var 파티션을 더 만들까도 하였지만, 왜 필요한지 알지못해 이렇게 하였습니다.
그리고 데이터베이스로 자료를 관리하고있기에 말씀하신 두번째 방법을 따라야 할듯하나 무슨 뜻인지 이해가 잘 가질 않습니다.
현재 DB가 존재하는 파티션의 용량이 부족한데 새로운 파티션을 마운트한다하여 어떤 의미가 있는지 잘 모르겠습니다.

heisenjoy의 이미지

향후 구축방안에 대한 이야기가 빠졌기에 추가합니다.
현재 서버에서는 회원제 게시판 형태로 자료를 공유하고 있습니다.
리눅스, 아파치, DB 등의 게시판이 있고 각각을 DB를 통해 관리하고있으나 용량이 한계에 달해있습니다.
이제 새로운 하드를 구입하여 추가하였을 때, 사용자가 기존 서버의 아차피 게시판에 자료를 업로드할 경우, 기존 하드에는 용량이 부족하기에 새로운 하드에 자료가 업로드되도록 하고 싶습니다.

ftwinkle의 이미지

아 질문 자체가 정리가 잘되지 않아서 일단 질문부터 정리하겠습니다.
1. 지금 Apache(PHP 웹서버로 판단), MySQL(데이터를 DB에 때려박아넣지는 않았을것으로 판단.), 데이터(실질적으로 용량을 부족하게 만드는 녀석들)
이 맞나요.
2. 지금 해결하려고 하는 방법은 물리적으로 한개의 서버에 디스크를 추가하여 기존 A라는 웹어플리케이션을 돌리고 있는상태에서 가상호스트 혹은 포트를 이용하여 새로 추가한 하드에 새로운 웹어플리케이션을 띄운후에 경로를 링크한다.

위에분이 간단하게 답변을 달아주셨네요.(다시 한번 설명을드린다면.)
서버에 400GB 하드를 추가.
1. 현재 /usr/local/apache/htdocs/data <- 예를들어서 이폴더에 데이터들이 저장된다고하면.
기존에 있던 데이터들을 일단 복사를 하거나 옮겨둡니다.
그뒤에 새로 설치한 하드 를를 /usr/local/apache/htdocs/data 에 마운트 시킵니다.
그리고 기존에 있던 데이터를 다시 마운트된 data에 복사를 합니다.(http://www.adma.kr/pc/cms/cms.php?mid=linux&pid=7)

점선 밑에는 처음에 아무생각없이 답글 달던건데 참조하셔도 될꺼같네요...(만약 LVM이 설정되어 있는 상태라면 하드 추가 설치하고 LVM만 설정하면 끝나겠네요.)

MPM, 서버가상화, 가상호스트 등을 통한 여러개의 웹 어플리케이션을 띄울께 아니고 그냥 용량만 늘릴꺼라면 한개의 서버에 웹어플리케이션을 띄울 필요가 있나 모르겠네요... 음 만약에 한개의 프로세스로 서버의 유휴 자원을 다 활용하지 못하는 상황이시라면 MPM, 서버가상화, 가상호스트 등을 통해서 여러개의 웹 어플리 케이션을 띄우는것도 서버 효율성을 높이는 하나의 방법이 되겠네요...
음 추가적으로 지탱하는 기술 시리즈 책이 있습니다... 요책들 보면 도움이 되실꺼 같네요...
----------------------------------------------------------------------------------------------------------------------------------------------------
지금 구성 상태가
AP서버(App Server), DB서버, 데이터 서버가 200GB 용량을가진 하나의 서버로 운영되고 있는중인걸로 보입니다.

1. 가장 단순한 해결책은 하드 디스크를 추가 하는겁니다. 하드구성 상황(RAID)을 정확히 알지 못하기 때문에...
1-1. 단일하드 구성 : 하드 드라이브 추가후에 mount 한뒤 파일업로드할때 경로를 추가한 하드로 설정하면되겠습니다.(웹 어플리케이션 약간 수정 필요)
1-2. RAID 구성 : 어떤 RAID 형태로 구성되어있냐에 따라 틀려지겠네요... 저도 RAID 구성후에는 확장을 안해봐서
1-3. LVM 구성 : LVM으로 구성되어 있는 상태라면 하드 추가후에 LVM 확장 작업을 통하여 논리적으로 하나의 하드디스크로 인식하도록 가능합니다.(LVM 하드 추가 로 검색해보세요.)

2. 서버를 추가할수 있는 여건이 된다면 분산 시스템으로 구성하는겁니다.
AP 서버, DB 서버, 데이터 서버를 분리하는 방법입니다.
지금 가장 용량을 많이 먹는게 데이터 서버이므로 이녀석만 따로 분리한후에.
NFS를 이용하여 mount 하여 사용합니다.(B 서버의 특정 디렉토리를 A서버의 mount 시켜서 사용가능하게 합니다. 보안문제가 있다고 하는데 구체적인 문제는 모르겠네요.) - 윈도의의 네트워크 공유디렉토리랑 비슷합니다. 다른 서버이지만 내 컴퓨터에 있는 폴더로 사용가능...
파일 업로드후에 rsync를 이용하여 파일을 미러링하고 서버에 올라온파일을 삭제합니다. 그리고 웹페이지에서 경로를 설정할때는 미러링된 데이터 서버의 경로를 설정해줍니다.

---------------------------------------------------------------------------------------------------------------------------------------------------

ftwinkle의 이미지

DB에 데이터를 저장할때 설정에따라서 예를들어서 300M, 500M, 1GB 이런식으로 쪼개서 파일이 저장이됩니다...
300M 짜리 데이터 파일을 하나 만들어놓고 얘가 용량이 다차면 파일을하나더 생성하게 됩니다...
data001,
data002 이런식으로요...
근데 하드가 다차서 이파일들이 추가될 용량이 없으면...
DB 설정자체에서 추가로 생성되는 파일들의 경로를 새로 마운트한 하드로 지정해주면된다는 말씀같네요...
음 근데... DB안에다가 이미지파일이나, 수십메가가 넘는 동영상 파일, 데이터파일등을 통째로 넣는건
그다지 추천드리는 방법이 아닙니다...

heisenjoy의 이미지

답변 감사합니다.
들어주신 예덕분에 이해가 잘 되었습니다.
아무래도 가진 지식이 부족하여 질문하는 것 조차 어렵게 느껴집니다.
동료들과 상의한 결과 2TB 용량의 하드를 새로 구입하였고, 이 하드디스크 한개 만으로 서버를 운용하도록 결정하였습니다.