리눅스에서 LVM 이란?

Logical Volume Manager 의 약자로 한글로 말하면 논리 볼륨 관리자 라고 할수 있는데, 물리적인 하나의 하드디스크를 논리적으로 쪼개서 사용할수도 있고, 여러개의 하드디스크를 논리적으로 합쳐서 하나로 보여지게도 가능하다.

 

한개의 물리적 디스크의 용량이 작던 시절에는 여러개의 디스크를 합쳐서 하나의 볼륨으로 사용하는 경우가 많았으나, 요새는 물리적 디스크의 용량이 크게 나오기때문에 기존에 사용중인 디스크의 용량을 확장시킨다거나 관리용으로 많이 사용되어 지는것 같다.

 

◆ 작업 Flow

[LVM처음 생성시]

1. 파티션 생성 -> 2. 피지컬볼륨 생성 -> 3. 볼륨그룹 생성 -> 4. 로지컬볼륨 생성 -> 5. 파일시스템 생성 -> 6. 마운트

 

1) 파티션 생성

명령어 : fdisk /dev/sdb
n(새 파티션 생성) -> p(primary) -> 1(default) -> Enter -> Enter -> t(파티션 종류 지정) -> 8e(LVM) -> w(저장)

 

 

2) 피지컬볼륨 생성

형식 : pvcreate [피지컬볼륨경로]
명령어 : pvcreate /dev/sdb1

 

 

3) 볼륨그룹 생성

형식 : vgcreate [볼륨그룹이름] [피지컬볼륨선택]
명령어 : vgcreate test_vg /dev/sdb1

- 설명 : test_vg라는 볼륨그룹을 생성하며, 피지컬볼륨sdb1를 등록

 

 

4) 로지컬볼륨 생성

형식 : lvcreate -n [로지컬볼륨이름] -ㅣ [용량할당] [볼륨그룹이름]
명령어 : lvcreate -n test_lv -l 100%FREE test_vg

- 설명 : test_lv라는 볼륨을 생성하고, test_vg의 용량100%를 test_lv에 할당

 

 

5) 파일시스템 생성

형식 : [생성할 파일시스템] [로지컬볼륨경로]
명령어 : mkfs.ext4 /dev/test_vg/test_lv

- 설명 : ext4파일시스템 생성

 

 

6) 마운트

형식 : [생성한 lv절대경로] [마운트할 디렉터리]
명령어 : mount /dev/test_vg/test_lv /test_lv

 

 

◆ 작업 Flow

[사용하던 LVM에 디스크 추가 및 LV용량 확장시]

1. 파티션 생성 -> 2. 피지컬볼륨 생성 -> 3. 기존 볼륨그룹에 추가 -> 4. 기존 로지컬볼륨에 용량 추가 -> 5. 적용

 

1) 파티션 생성

명령어 : fdisk /dev/sdc
n(새 파티션 생성) -> p(primary) -> 1(default) -> Enter -> Enter -> t(파티션 종류 지정) -> 8e(LVM) -> w(저장)

 

 

2) 피지컬볼륨 생성

형식 : pvcreate [피지컬볼륨경로]
명령어 : pvcreate /dev/sdc1

 

 

3) 기존 볼륨그룹에 추가

형식 : vgextend [볼륨그룹이름] [피지컬볼륨경로]
명령어 : vgextend test_vg /dev/sdc1

- 설명 : test_vg 볼륨그룹에 피지컬볼륨sdc1를 추가

 

 

4) 기존 로지컬볼륨에 용량 추가

형식 : lvextend [로지컬볼륨경로] -l [용량할당]
명령어 : lvextend /dev/test_vg/test_lv -l +100%FREE

- 설명 : test_vg의 남아있는 용량100%를 test_lv에 던져준다.

 

 

5) 확장된 용량 적용 (리사이징)

형식 : resize2fs [로지컬볼륨경로]
명령어 : resize2fs /dev/test_vg/test_lv

 

 

※  resize2fs가 안될 경우 해결방법 (ex.문제볼륨 /dev/test_vg/test_lv)

작업 Flow

1. umount -> 2. 파일시스템 체크 -> 3. 마운트 -> 4. 리사이징

 

1) umount

명령어 : umount /test_lv

 

2) 파일시스템 체크

명령어 : fsck /dev/test_vg/test_lv

 

3) 마운트

명령어 : mount /dev/test_vg/test_lv /test_lv

 

4) 리사이징

명령어 : resize2fs /dev/test_vg/test_lv

 

Posted by 실력키우기
  • Docker Swarm 구성환경 :
- Manager Node 호스트 3개
- Worker Node 2개

 

  • Docker Swarm 구성요소

- Swarm 클러스터는 Manager Node 와 Worker Node 두 종류가 존재.

 

Manager Node

- Swarm과 사용자 간의 Interface로써 Swarm 방식으로 처리되는 모든 기능에 대해 사용자의 명령을 받는 통로 역활 수행

- 자신을 비롯한 모든 Node의 등록과 탈퇴를 처리하고 상태정보 관리를 통하여 가용자원의 상태를 관리

- Task Scheduler로써 사용자가 지시한 일을 여러 Worker가 적절히 수행할 수 있도록 Service의 생명주기 관리를 주관

- 다수의 Manager 간 클러스터 정보를 동기화하고 전체 Swarm클러스터의 가용성을 관리

 

Worker Node

- Manager Node의 지시를 받아 container를 구동하는 노드.

 

  • Docker Swarm 구성방법 :
- docker swarm init --advertise-addr [ip]
(docker swarm 을 구성하기 위한 초기화 명령어 / worker 노드를 추가하는 token 값이 생성된다.) 
- docker swarm join-token worker
(해당 명령어 입력시 Worker 노드를 추가하는 token 값이 생성되며, Worker 노드에 가입을 원하는 호스트에서 결과값 실행시 가입완료) 
- docker swarm join-token manager
(해당 명령어 입력시 아래 결과값처럼 Manager 노드를 추가하는 token 값이 생성되며, Manager 노드에 가입을 원하는 호스트에서 결과값 실행시 가입완료.) 
To add a manager to this swarm, run the following command: docker swarm join --token SWMTKN-1-0ysvt743g5e8gi5n3zmetdgqa449tdp2zgbxbaimmlkhghq9za-6w26kqxyn70ujmphtuw6o5tqr 10.230.102.13:2377

 

 

  • 유지보수 관리 모드
- docker node update --availability drain [node name]
(유지보수 모드로 변경(drain)하게 되면 앞으로 모든 컨테이너는 해당 서버에 할당이 되지 않으며, 현재 구동중인 모든 컨테이너들이 다른 쪽으로 넘어가게됨)

 

  • 유지보수 관리 모드 취소
- docker node update --availability active [node name]
(유지보수 모드를 취소하는 명령어로, 앞으로 해당호스트에도 컨테이너 할당이 가능하게되며, 취소했다고 해도 기존에 해당호스트에서 실행되던 컨테이너들은 다시 넘어오지 않는다.)

 

  • Manager Node로 승격
- docker node promote [WorkerNode Name]
(Worker Node를 Manager Node로 승격)

 

  • Worker Node로 강등
- docker node demote [ManagerNode Name]
(Manager Node를 Worker Node로 강등)

 

  • node 제거
- docker swarm rm [node name]
(Manager 노드에서 해당명령어로 노드를 제거시킬수 있음)

 

  • Cluster 탈퇴방법

- docker swarm leave
(Worker Node가 cluster를 떠날때 사용한다.)

- docker swarm leave --force
(Manager node가 cluster를 떠날때 사용한다.)

 

  • 장애시험
- 매니저 노드 2개를 구성하여 일반 Manager노드 1개가 장애가 날경우 (정상작동) 
- 매니저 노드 2개를 구성하여 리더 Manager노드 1개가 장애가 날경우 (장애)
(The swarm does not have a leader. It’s possible that too few managers are online. Make sure more than half of the managers are online. 의 에러가 발생하며 모든 서버가 마비가 된다.)
- 매니저 노드 3개를 구성하여 일반 Manager노드 1개가 장애가 날경우 (정상작동)
- 매니저 노드 3개를 구성하여 리더 Manager노드 1개가 장애가 날경우 (정상작동) 

 위처럼 장애시험을 통해 얻은 결과는 총 Manager노드 개수의 반 이상이 정상인 상태여야 정상작동을 한다는 것이다. 위 같은 이유로 보통 Manager Node 의 개수는 3, 5, 7 처럼 홀수개의 갯수로 구성해야 가용성이 보장된다.

Posted by 실력키우기

[docker-compose 이용하여 서버 리소스 모니터링 툴 구축]


- 도커를 이용하여 grafana 와 influxdb를 올려 서버 리소스 모니터링 구축하기


- 설치환경  grafana 및 influxdb 를 docker pull로 다운받은 후 작업진행



[ docker-compose ]


  - 도커 컴포즈란 컨테이너 여럿을 띄우는 도커 애플리케이션을 정의하고 실행하는 도구

  - 컨테이너 실행에 필요한 옵션을 docker-compose.yml 이라는 파일에 적어둘 수 있고, 컨테이너 간 의종성도 관리할수 있는 장점이 있음



1) docker-compose 패키지 설치 확인


   dpkg -l docker-*


2) 미설치 시 설치 진행


   dpkg -i docker-compose


3) docker-compose.yml 파일 생성 후 내용 작성


 - 프로젝트 루트에 파일을 생성을 해야 함


# Define a Grafana service

   grafana:

    image: grafana/grafana

    volumes:

      - ./it/grafana:/var/lib/grafana

    environment:

      GF_SECURITY_ADMIN_PASSWD: secret

      INFLUXDB_URL: http://influxdb:8086

      KAPACITOR_URL: http://kapacitor:9092

    ports:

      - "3000:3000"

    links:

      - influxdb

      - kapacitor

  # Define an InfluxDB service

   influxdb:

    image: influxdb:1.5.4

    volumes:

      - ./it/influxdb:/var/lib/influxdb

    ports:

      - "8086:8086"

  # Define a Chronograf service

   chronograf:

    image: chronograf:1.5.0

    environment:

      INFLUXDB_URL: http://influxdb:8086

      KAPACITOR_URL: http://kapacitor:9092

    ports:

      - "8888:8888"

    links:

      - influxdb

      - kapacitor

  # Define a Kapacitor service

   kapacitor:

    image: kapacitor:1.4.1

    environment:

      KAPACITOR_HOSTNAME: kapacitor

      KAPACITOR_INFLUXDB_0_URLS_0: http://influxdb:8086

    links:

      - influxdb

    ports:

      - "9092:9092"

  # Define a service for using the telegraf CLI tool.

  # docker-compose run telegraf-cli

'Linux Server > Docker' 카테고리의 다른 글

[Docker] Docker Swarm 구축  (0) 2020.11.30
[Docker] 도커 명령어  (0) 2019.02.24
Posted by 실력키우기

블로그 이미지
공 부 하 는 직 장 인
실력키우기

태그목록

공지사항

Yesterday
Today
Total

최근에 달린 댓글