lvmetad is not active yet; using direct activation during sysinit

우분투 서버를 하나 더 증설해야 해서 서버를 하나 더 설치하고 나서 나왔던 메시지다. 첨엔  깜짝 놀랐다. 분명 설치 제대로 완료되어서 재시작하고 했는데… 첫 부팅에서 로그인 화면은 안나오고 갑자기 저건 왜!

뭐, 당연히 저런 건 검색부터 해본다. 그러면 해결책은 나온다. ㅇㅅㅇ;

grub에서 문제를 일으켜서 나오는 오류인 것으로 보여진다. 그래서 grub을 수정해야 하는데… 로그인을 해야 수정을 할 꺼 아니냐고 생각한다만.. 저 메시지 나오는 상태에서도 로그인 된다.

일단 저 상황이면 당황하지 말고 “Ctrl + Alt + F2″를 눌러준다. 그러면 로그인 가능한 상태가 된다. ㅡㅅㅡ

그리고 나서 grub을 수정해주면 된다. /etc/default/grub을 수정.

  • GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”로 설정되어 있는 값을 nomodeset으로 변경해준다.
  • 마지막 줄에 GRUB_TERMINAL_INPUT=”console serial”을 추가해준다.

grub에 대해서 그렇게 깊게 알지 못해서 저 설정들에 대해 각각을 설명할 수 없는 게 아쉽다..ㅠㅠ

일단 저 내용을 수정하고 나서 “sudo update-grub”명령어를 통해 grub 정보를 업데이트 한다. 그리고 나서 시스템을 재시작하면 아무 문제없이 로그인화면까지 재부팅 되는 것을 볼 수 있다. (grub 정보 업뎃 잊지말자.)

리눅스 LVM 명령어 정리

이전 글에서 삽질한 경험을 토대로 일단 써본 LVM에 대한 명령어는 요약 정리 좀 해두려고 한다.

extendfs – 파일 시스템을 확장합니다.
예)   # extendfs /dev/VG/data

lvchange – 논리 볼륨의 특성을 변경합니다.
예)   # lvchange -t 60 /dev/VG/data

lvcreate – 볼륨 그룹에 논리 볼륨을 만듭니다.
예)   # lvcreate -L 100 /dev/VG

lvdisplay – 논리 볼륨 정보를 표시합니다.
예)   # lvdisplay -v /dev/VG/data

lvextend – 논리 볼륨에 미러를 추가합니다.
예)   # lvextend -m 1 /dev/VG/data

lvextend – 논리 볼륨 크기를 늘립니다.
예)   # lvextend -L 60 /dev/VG/data

lvreduce – 논리 볼륨의 미러 사본 수를 줄입니다.
예)   # lvreduce -m 0 /dev/VG/data

lvremove – 볼륨 그룹에서 논리 볼륨을 제거합니다.
예)   # lvremove /dev/VG/data

pvchange – 물리 볼륨의 특성을 변경합니다.

예)   # pvchange -a n /dev/sdb1

pvcreate – 볼륨 그룹의 일부로 사용할 물리 볼륨을 만듭니다.
예)   # pvcreate /dev/sdb1 /dev/sdb2

pvdisplay – 물리 볼륨의 정보를 표시합니다.

예)   # pvdisplay -v
# pvdisplay -v /dev/sdb1

pvmove – 한 물리 볼륨에서 다른 물리 볼륨으로 익스텐트를 이동합니다.
예)   # pvmove /dev/sdb1 /dev/sdb2

pvremove – 물리 볼륨에서 LVM 데이터 구조를 제거합니다.
예)   # pvremove /dev/sdb1

vgcfgbackup – 볼륨 그룹의 LVM 구성을 저장합니다.
예)   # vgcfgbackup VG

vgcfgrestore – LVM 구성을 복원합니다.
예)   # vgcfgrestore -n /dev/VG /dev/sdb2

vgchange – 볼륨 그룹을 설정하거나 해제합니다.
예)   # vgchange -a y /dev/VG

vgcreate – 볼륨 그룹을 만듭니다.
예)   # vgcreate VG /dev/sdb1 /dev/sdb2

vgdisplay – 볼륨 그룹에 대한 정보를 표시합니다.
예)   # vgdisplay -v
# vgdisplay -v /dev/VG

vgextend – 물리 볼륨을 추가하여 볼륨 그룹을 확장합니다.
예)   # vgextend /dev/VG /dev/sdb3

vgexport – 시스템에서 볼륨 그룹을 제거합니다.
예)   # vgexport /dev/VG

vgscan –  시스템 디스크에서 볼륨 그룹을 검색합니다.
예)   # vgscan -v

vgreduce – 볼륨 그룹에서 볼륨을 하나 이상 제거하여 볼륨 그룹을 축소시킵니다.
예)   # vgreduce VG /dev/disk/disk2

vgremove – 시스템과 디스크에서 볼륨 그룹의 정의를 제거합니다.
예)   # vgremove VG /dev/sdb3

LVM으로 씨름 좀 했네..ㅠㅠ

뒤에서 몰래 하고 있던 실험 때문에 데이터가 너무 금방 차오르던 기존의 연구실 서버… 어차피 새로 구축해야 할 겸 해서 안쓰는 컴의 하드를 두개 더 떼다가 연결해서 하드를 셋 구겨넣고 LVM으로 볼륨을 묶어서 관리하자라고 생각해서 진행해 보았다. (원래 하드가 셋인데 왠지 모르게 하나가 망가짐)

어차피 우분투 서버 재설치를 진행하면서, 항상 파티션 영역에 대해서는 귀찮아서 걍 전체 디스크를 LVM을 이용해서 사용한다고 선택하고 한다. 그러면 알아서 로직 볼륨으로는 root랑 swap을 만들어주던 이녀석… 언젠간 쓰겠지 하면서 한번도 안썼던 LVM…

스크린샷_2016-07-04_20-47-37

그래서 이번에도 마찬가지로 일단 하드 하나 연결했을 때 설치를 진행했다.

그리고 나서 하드 두개를 마저 연결한 다음, 부팅 후 처음 설치 때 만들어진 LVM 그룹에 이 두 하드를 추가해서 root를 늘리고 싶었다.

이것 저것 찾아보니 방법은 있더라. 대부분은 새로운 그룹을 만들어서 처리하는 방법에 대해 주로 서술했는데, 기존 것에 추가하는 것도 별 차이는 없으니 걍 따라만 해보면 될 거 같다. 스샷을 하나도 못찍어서 걍 글과 명령어로 설명함. 그리고 당연히 운영체제 설치된 파티션을 확장하는 것이니 나중에 위험이 될 수도 있다. 그래도 하려면 따라해 보면 될 듯.

  1. fdisk /dev/sdb

추가할 하드를 설정해야 한다. 디스크의 파티션을 전부 지우고 새로 만드는데, primary 파티션으로 나머진 그냥 다 기본 설정으로 진행한다. 그러면 모든 용량 다 쓰는 파티션이 만들어지는데, 이 파티션의 설정을 바꿔야 한다. 8e코드인 “Linux VM”이라는 걸 선택한다. LVM에 사용되는 하드는 이렇게 전용 하드 설정을 가지고 있다. 원하는 하드를 전부 이런 식으로 만들어준다.

  1. pvcreate를 이용해 생성된 sdb1, sdc1을 만들어줌

이젠 직접적인 물리 볼륨을 만들어준다. format하는 것과 동일한 방법이라고 생각하면 된다.

pvcreate /dev/sdb1
pvcreate /dev/sdc1

  1. 기존 볼륨그룹 확인: vgdisplay

LVM의 볼륨 그룹을 확인하기 위한 명령어이다. 이걸 통해 어떤 볼륨 그룹이 마운트 되어있는지 이름을 확인할 수도 있고, 실제 할당량도 확인할 수 있다. 여기서 볼륨 이름을 확인해준다.

  1. 생성된 pv를 기존 볼륨 그룹에 추가: vgextend

기존의 볼륨 그룹에 추가를 해주는데, 명령어 vgextend를 사용하면 된다.

vgextend HSCLAB-Server-vg /dev/sdb1
vgextend HSCLAB-Server-vg /dev/sdc1

  1. 추가된 사이즈를 로지컬 볼륨에 확장해줌: lvextend

이젠 논리 볼륨의 사이즈를 추가한다. lvextend 명령어를 통해 직접 추가를 해주면 된다. -l을 이용하여 PE 사이즈로 추가할 수도 있고, -L 옵션을 줘서 용량 단위로 추가해 줄 수도 있다. 편한대로 추가해주면 된다.

lvextend -L +500G /dev/HSCLAB-Server-vg/root
lvextend -L +7G /dev/HSCLAB-Server-vg/swap

  1. 볼륨 그룹을 다시 확인

제대로 적용되었는지 다시 확인해준다.

  1. 로직 볼륨 정보 확인: lvdisplay

로직 볼륨도 확장되었는지 확인한다.

  1. 디스크 용량 확인: df -h

디스크 용량 확인하는 명령어로 용량이 얼마나 적용되어있는지 확인해본다. 근데 여기선 분명 적용 안되어 있을 것이다!

  1. 디스크 용량 적용: resize2fs

운영체제가 적용된 디스크 리사이즈를 바로 반영하지 않는다. 특히 파티션 관련된 작업에 대해서는 여러모로 신중하다. 그래서 명령어를 쳐서 직접 용량을 적용해 줘야 한다. 논리 볼륨에 직접 적용해주자.

resize2fs /dev/HSCLAB-Server-vg/root
resize2fs /dev/HSCLAB-Server-vg/swap

적용하고 나서 용량을 다시 확인하면 늘어나 있는 것을 확인할 수 있다.

스크린샷_2016-07-04_21-16-34.png

전부 다 적용된 상태가 아래와 같다. 뭣 모르고 용량 계산 잘못해서 8기가 정도 남겼는데.. 뭐, 나중에 수정하자.

스크린샷_2016-07-04_21-14-43

은근 어려운 거 같으면서도 어렵진 않았다. 이 방법은 RAID를 통해 오류 복구를 하거나 하는 방식이 아니라 그냥 논리적인 볼륨을 만들어서 사이즈를 늘리고 줄이는 게 목적인 만큼 파티션 꼬이면 문제 많이 되므로 확실하게 하나 하나 진행해 나가야 한다.