KVM 메인 시스템을 새로 구축하면서, 메인 OS를 64bit -> 32bit로 테스트삼아 변경하였는데, 메인 메모리가 16GB가 꽃혀 있는데, 4GB만 인식하였음.
바이오스에서 인식은 문제가 없으나, OS가 32bit라서 발생된 당연한 문제(?..아니죠~ 현상?)이며, 아래와 같이 처리 하였음.
전제조건 : 메인보드에서 4G이상의 메모리를 인식함.
CPU(intel)에 PAE(Physical Address Extensions) 기능이 있어야함.
바이오스에서 인식은 문제가 없으나, OS가 32bit라서 발생된 당연한 문제(?..아니죠~ 현상?)이며, 아래와 같이 처리 하였음.
전제조건 : 메인보드에서 4G이상의 메모리를 인식함.
CPU(intel)에 PAE(Physical Address Extensions) 기능이 있어야함.
; 32bit... 2^32바이트...의 메모리 까지를 어드레싱 할수 있다. 즉, 2^32 byte = 4294967296 byte = 4294967 Kbyte = 4294 Mbyte = 약 4Gbyte
이게 32bit의 한계라, 4GB이상을 사용하기를 윈한다면, 정석은 64bit (2^64 = 18446744073709551616 = 18446744 Tbyte = 거의 무제한) OS를 이용하여야 한다.
그러나, Intel CPU이며(현재 AMD에도 있는지는 모르겠음. 아님 다른 방식인지..) PAE 기능이 있다면, 32bit OS에서도 4G이상의 메모리를 어드레싱 할수가 있다.
PAE=Physical Address Extensions
PAE에 대한 자세한 정보는 구글링을 해보시고, 지원 여부는 아래와 같이 확인
이게 32bit의 한계라, 4GB이상을 사용하기를 윈한다면, 정석은 64bit (2^64 = 18446744073709551616 = 18446744 Tbyte = 거의 무제한) OS를 이용하여야 한다.
그러나, Intel CPU이며(현재 AMD에도 있는지는 모르겠음. 아님 다른 방식인지..) PAE 기능이 있다면, 32bit OS에서도 4G이상의 메모리를 어드레싱 할수가 있다.
PAE=Physical Address Extensions
PAE에 대한 자세한 정보는 구글링을 해보시고, 지원 여부는 아래와 같이 확인
# cat /proc/cpuinfo | grep -i pae
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx tm2 ssse3 cx16 xtpr dca lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx tm2 ssse3 cx16 xtpr dca lahf_lm
와 같이 pae 플래그가 있어야 한다.
CPU 지원이 가능한것을 확인했다면, 이제 커널 지원만 되면 끝난다.
최신 OS들에는 kernel-PAE 커널이 RPM으로 별도로 존재하므로,
최신 OS들에는 kernel-PAE 커널이 RPM으로 별도로 존재하므로,
# yum install kernel-PAE kernel-PAE-devel
커널을 설치하면 되며, 소스 커널 설치시에는 커널 옵션 설정에서 PAE 관련 기능을 활성화하고, 수치를 64G로 설정하여 컴파일-설치 하면 32bit OS에서도
얼마든지 고용량 메모리를 사용할수 있다.
여담이지만,, OS별로 고용량 메모리를 지원하는 커널들이 여러종류로 지원되고 있는것을 알수 있었습니다. 예전의 bigmem 부터, largemem, highmem64, hugemem...이런..... 아무튼, 지겹고 시간 소모가 큰 커널 컴파일 같은 작업은 안해도 되겠죠... 자세한 정보는 구글친구에게서...얻으시길....
커널을 설치하면 되며, 소스 커널 설치시에는 커널 옵션 설정에서 PAE 관련 기능을 활성화하고, 수치를 64G로 설정하여 컴파일-설치 하면 32bit OS에서도
얼마든지 고용량 메모리를 사용할수 있다.
여담이지만,, OS별로 고용량 메모리를 지원하는 커널들이 여러종류로 지원되고 있는것을 알수 있었습니다. 예전의 bigmem 부터, largemem, highmem64, hugemem...이런..... 아무튼, 지겹고 시간 소모가 큰 커널 컴파일 같은 작업은 안해도 되겠죠... 자세한 정보는 구글친구에게서...얻으시길....
* 틀린 정보가 있다면 댓글을 통한 지적-수정 바랍니다.
1. [root@localhost ~]# yum -y install kernel-PAE* ==> 실행!!
답글삭제(1/2): kernel-PAE-devel-2.6.18-194.26.1.el5.i686.rpm
(2/2): kernel-PAE-2.6.18-194.26.1.el5.i686.rpm
====> 2개 파일이 패치된다.
2. vi /etc/grub.conf 패치된 것으로 변경한다. 0으로 수정해야 패치된 값으로 부팅된다.
---------------------------------------------------------------------
default=0
title CentOS (2.6.18-194.26.1.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.26.1.el5PAE ro root=LABEL=/
initrd /boot/initrd-2.6.18-194.26.1.el5PAE.img
---------------------------------------------------------------------
3. reboot 후 메모리 인식 잘 되는지 확인하면 된다.