Sunday, December 31, 2017

Latest Kernel Installation on CentOS-7


      ပံုမွန္အားျဖင့္ CentOS7 မွာလက္ရိွစာေရးေနခ်ိန္အထိ Linux kernel version ေတြဟာ 3.x.x. နဲ႔ပဲလာျပီးေတာ့ေနာက္ဆံုး update ကိုတရား၀င္အားျဖင့္ support ေပးတာမ်ိဳးမေတြ႕ရပါဘူး။ မလိုအပ္တာေႀကာင့္လည္းျဖစ္ ႏိုင္ပါတယ္။အဲ့ေတာ့ကာ latest kernel ကို install လုပ္ခ်င္ရင္ေတာ့ ကိုယ့္ဟာကိုယ္ပဲ ELRepo ကိုကေန install လုပ္ရပါေတာ့မယ္။ ELRepo ဆိုတာသည္ RPM repository for Enterprise Linux Packages ျဖစ္ျပီးေတာ့ hardware issue ေတြျဖစ္တဲ့ video and graphic ၊ audio ၊ network နဲ႔ file system drivers packages ေတြဖက္ကိုအဓိ ထား develop လုပ္ပါတယ္။အဲ့ေတာ့ ပံုမွန္မဟုတ္တဲ့ third-party software ေတြ driver ေတြတခ်င္ရင္ elrepo ကိုသံုးရမွာပါ။        



        အေပၚကပံုေလးမွာ centos7.3 နဲ႔ nagios core ကိုတင္ထားတယ္။linux kernels ေတြကေတာ့ default ျဖစ္တဲ့ 3.x.xx version ေတြျဖစ္ပါတယ္။အဲ့မွာမွာ latest kernel ကိုစမ္းတင္ႀကည့္ပါမယ္။ Installation အဆင့္ ေတြကိုေတာ့သံုးဆင့္ေလာက္ပဲခြဲလုိက္ပါမယ္။
1)    Import the public key
2)  Install ELRepo for CentOS 7
3)  Installing New Kernel version
      Kernel အသစ္အတြက္ public-key ကို import မလုပ္မီမွာ လက္ရွိ အသံုးျပဳေနတဲ့ OS version နဲ႔ linux kernel verstion ကိုအရင္ check လုပ္ပါမယ္။

root@infra ~#cat /proc/version    (or)  root@infra ~#uname –mrs


        အေပၚပံုကလက္ရွိ login ၀င္ထားတဲ့ kernel ရဲ့ version ျဖစ္ပါတယ္။OS release version အတြကကိုေတာ့ ေအာက္ပါအတိုင္းႀကည့္ပါမယ္။OS release version ကေတာ့ 7.4 ပါ။သို႔ေသာ္စတင္ install လပ္စဥ္က 7.3 နဲ႔ပဲ installation လုပ္ထားတာပါ။


ျပီးရင္ေတာ့ wget သံုးျပီး public elrepo key ကို download ဆြဲပါမယ္။

root@infra ~]#wget https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
root@infra ~]#gpg --quiet --with-fingerprint RPM-GPG-KEY-elrepo.org


ေထြေထြထူးထူး error မရွိဘူးဆိုရင္ေတာ့ download လုပ္ထားတဲ့ public-key ကို import လုပ္လုိ႔ရပါျပီ။

root@infra ~]#sudo rpm --import RPM-GPG-KEY-elrepo.org


      key-import ျပီးသြားရင္ elrepo file ကို download လုပ္ပါမယ္။latest version ကိုသံုးပါမယ္။အဲ့အတြက္ elrepo official site မွာ သက္ဆိုင္ရာ OS version မ်ားအလိုက္ latest repo ေတြရွိပါတယ္။ CentOS7အတြက္ elrepo-release-7.0-3.el7.elrepo.noarch.rpm ျဖစ္ပါတယ္။ သို႔ေသာ္ဒါက အေသမွတ္စရာမလိုပါ။ latest ျဖစ္တာကိုသံုးရံုပါ။

root@infra ~#wget http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm


root@infra ~#yum install elrepo-release-7.0-3.el7.elrepo.noarch.rpm


               New kernel installation အတြက္လုိအပ္တဲ repo file ကို installation လုပ္လို႔ျပီးပါျပီ။ ဒီေနရာမွာ တခုနားည္ထားရမွာက အခု repo file ဟာ new kernel အတြက္လုိအပ္တာေတြအျပင္ အျခာ ေသာ third-party software မ်ားအတြက္ပါ သက္ဆိုင္ရာ repo data ေတြပါ၀င္ေနပါတယ္။ အခုကြ်န္ေတာ္တို႔က kernel ကိုပဲ installation လုပ္ခ်င္တာပါ။ အျခား software ေတြကို installation မလုပ္ခ်င္ပါဘူး။ အဲ့ဒါေလးကို ေတာ့မွတ္သားထားစခ်င္ပါတယ္။ အရင္ဆံုး available ျဖစ္တဲ့ kernel ေတြကို list လုပ္ႀကည့္ပါမယ္။ 

root@infra ~#yum list available --disablerepo='*' --enablerepo=elrepo-kernel

ဒီေနရာမွာ --disablerepo='*' ဆိုတာက repo data အားလံုးကို disable လုပ္လိုက္ပါျပီ။သို႔ေသာ္ေနာက္မွာ   --enablerepo=elrepo-kernel ပါတဲ့အတြက္ kernel နဲ႔ပါတ္သတ္တာေတြကိုေတာ့ list လုပ္ပါလို႔ဆိုလိုတာပါ။ ေအာက္ကပံုအတိုင္း command output ထြက္လာပါမယ္။available ျဖစ္တဲ့ kernel type ေတြအကုန္လံုး list လုပ္ထားေပးပါလိမ့္မယ္။


ဒီေနရာမွာ kernel-lt.x86_64 နဲ႔ kernel-ml.x86_64  ဆိုျပီးႏွစ္မ်ိဳးအဓိကေတြ႕ရပါမယ္။အခုက list လုပ္ထားတာပဲရွိေသးျပီး installation မလုပ္ရေသးပါဘူး။ႏွစ္မ်ိဳးထဲကတစ္မ်ိဳးကို install လုပ္ရမွာပါ။ကြ်န္ေတာ္ကေတာ့ long team support ျဖစ္တဲ့ kernel-lt.x86_64 ကို install လုပ္ပါမယ္။command ကေတာ့ျဖစ္ ေအာက္ပါအတိုင္းျဖစ္ပါတယ္။

root@infra ~#yum --disablerepo='*' --enablerepo=elrepo-kernel install kernel-lt


Mini stable ကို install လုပ္ခ်င္ရင္ေတာ့ေအာက္ပါ command အတိုင္းသြားပါမယ္။ေနာက္ဆံုးစာလံုးပဲ ကြာပါမယ္။က်န္တာကအတူတူပါပဲ။

root@infra ~#yum --disablerepo='*' --enablerepo=elrepo-kernel install kernel-ml

အဲ့ဒီေနာက္ reboot လုပ္ျပီးျပန္တက္လာရင္ kernel အသစ္နဲ႔ log-in လုပ္လို႔ရပါျပီ။ဒီေနရာမွာ kernel အသစ္ နဲ႔ default တက္မွာမဟုတ္ပါဘူး။ေအာက္ကပံုက manual ေရြးထားတာပါ။default တက္ခ်င္ရင္ေတာ့ grub ကို kernel 4.4 အေနနဲ႔ default ျဖစ္ေအာင္ config လုပ္ေပးရပါမယ္။


 အဲေတာ့ grub file က /etc/defaulf/ ေအာက္မွာရွိပါတယ္။ေအာက္ကပံုကိုႀကည့္ပါ။အဲ့မွာ vi နဲ႔ျဖစ္ျဖစ္ nano နဲ႔ပဲျဖစ္ျဖစ္ GRUB_DEFAULT=SAVED ဆိုတာကို GRUB_DEFAULT=0 ေျပာင္းေပးလုိက္ပါ။ေအာက္ကပံု ကေတာ့ေျပာင္း ျပီးသားပံုျဖစ္ပါတယ္။

ျပီးရင္ေအာက္ပါ command အတိုင္း update လုပ္ပါမယ္။ျပီးရင္ reboot လုပ္ပါမယ္။

root@localhost~#grub2-mkconfig -o /boot/grub2/grub.cfg


              ေနာက္တစ္ႀကိမ္ reboot ျပန္တက္ရင္ေတာ့ kernel 4.4 က default ျဖစ္ေနပါျပီ။အခုဒီ kernel upgrading လုပ္တဲ့ process ကို zabbix install လုပ္ထားတဲ့ vbox ေပၚမွာေကာ nagios install လုပ္ထားတဲ့ vbox ေပၚမွာ ပါစမ္းျပီးျဖစ္ပါတယ္။ သူ႔ရဲ့ core application system ကိုမသို႔မွထိခိုက္ျခင္းမရွိပါဘူး  ေကာင္းေကာင္းမြန္မြန္ အလုပ္လုပ္ပါတယ္။ သို႔ေသာ္ CentOS community အေနနဲ႔ latest kernel နဲ႔ပတ္သတ္ျပီး official recommend ေပးျခင္းမ်ိဳး support ေပးျခင္းမ်ိဳးမရွိပါဘူး။ ဒါေႀကာင့္ operational environment မွာဆိုရင္ upgrade လုပ္ဖို႔မလိုအပ္ရင္ေတာ့ မလုပ္တာပိုေကာင္းပါတယ္။ တကယ္လို႔ ကိုယ့္ desire ေႀကာင့္လုပ္ခ်င္တယ္ ဆိုရင္ေတာ့ critical data ေတြ backup အရင္လုပ္ျပီးမွ စမ္းႀကည့္ေစခ်င္ပါတယ္။ တခုခုခြ်တ္ေခ်ာ္လို႔ OS boot ျပန္မတက္ရင္save ျဖစ္ေအာင္ပါ။

ေလးစားစြာျဖင့္
Win Tun Hlaing