Thursday, January 23, 2014

Standard Disk Partition, Creating Swap Memory and Managing Disk Quota

Disk Partition in Linux
                  အခု tutorial မှာ hard disk partition ကို Linux မှာ ဘယ်လိုမျိုးပိုင်းလဲ ဆိုတာကိုပြောပြ မှာဖြစ်ပါတယ်။ အရင်ဆုံး မစခင် hard disk types အမျိုးအစားတွေကို အကြမ်းဖြင်း အနေနဲ့ Hard Disk မှာ  PATA (Parallel Advanced Technology Attachment), SATA (Serial Advanced Technology Attachment), SCSI (Small Computer System Interface) ဆိုပြီးသုံးမျိုးရှိပါတယ်။ အခုလက်ရှိမှာတော့ PATA Type hard disk အမျိုးအစားတွေ ဟာအသုံးနည်းသွားပြီဖြစ်ပါတယ်။ PATA အမျိုးအစား hard disk တွေသည် IDE Cable များကို အသုံးပြုသောကြောင့် IDE HDD ရယ်လို့ အသိများပါတယ်။  ကျွန်တော်တို့ windows မှာတော့ ရှင်းပါတယ် C: , D: column ဆိုပြီး IDE ပဲဖြစ်ဖြစ် SATA ပဲ ဖြစ်ဖြစ် သုံးနှုန်းပါတယ်။ အခု Linux မှာတော့ PATA HDD တွေ ကို ဥပမာ PATA/IDE hard disk တစ်ခု attached လုပ် ထားမယ် ဆိုရင်သူ့ကို "/dev/hda" ဟုခေါ်ပြီး ထို hard diskကို partition နှစ်ပိုင်း ပိုင်းထားပါက "/dev/hda1" and "/dev/hda2" ဆိုပြီး သတ်မှတ်မှာဖြစ်ပါတယ်။ Second hard disk attached လာလုပ်ရင် "/dev/hdb"  ဟု သတ်မှတ်ပြီး partition ပိုင်းပါက "/dev/hdb(1,2)" ဆိုပြီးသတ်မှတ်ပါတယ်။

                  SATA HDD ကတော့ အခုချိန်မှာအသုံးများဆုံးပါ သူ့ကိုတော့ Linux မှာ "/dev/sda(1,2,3)" ဆိုရျ်သတ်မှတ်ပါတယ်။ နောက်ဆုံး တစ်ခုဖြစ်သော SCSI ကတော့ အိမ်သုံး hard disk  အမျိုးအစား မဟုတ်ပဲ Servers System တွေမှာ အများဆုံးသုံးပါတယ်။ အရင် SCSI တွေက PATA HDD တွေလိုမျိုး parallel system ကို အသုံးပြုပြီး အခု ကတော့ Serial Attached SCSI (SAS) ဆိုပြီး SATA System နှင့်အလုပ်လုပ်ပါတယ်။ သူသည်လဲ SATA လိုပဲ "/dev/sda(1,2,3) ပုံစံသွားပါတယ်၊




Why Partition ?
                 ကျွန်တော်တို ဘာလို့လဲဆိုရင် partition ပိုင်းလျှင် (1) Multiple-Os များတင်နိုင်ပါတယ် (2) Disk Space Manage လုပ်နိုင်ပါတယ် (3) Disk Error Protection တစ်နည်းအားဖြင့် partition ပိုင်းထားသောကြောင့် OS သီးသန့် တင်ထားသော အပိုင်းတွင် error တက်သောလည်း Data များကို partiton ပိုင်းရျ် သီးခြားထားထားသောကြောင့် Data lost ဖြစ်တာကို အနည်းဆုံးကာကွယ်နိုင်ပါတယ်။

Partitioning System
                 ကျွန်တော်တို့အခု tutorial မှာ လုပ်ပြမယ် partition ပုံစံတွေသည် MBR Partition ပုံစံနဲ့လုပ်ပြမှာပါ။ ဘာလို့လဲဆိုတော့ Partition Systems မှာ MBR partition type ရယ် GPT partition type ရယ် ဆိုမျိုး နှစ်မျိုးရှိနေလို့ဖြစ်ပါတယ်။ အခုထိလဲ အသုံးများနေတုန်းက MBR Partiton ပုံစံဖြစ်ပါတယ်။ MBR မှာ ဆိုရင် အဓိက partition (3) မျိုး ရှိတယ် "Primary" "Extended" "Logical" partition ဆိုပြီးတော့ပါ။ Primary Partition ကို 4 primary (or) 3 primary partition + 1 extended လိုမျိုး ခွဲနိုင်ပြီး primary partition တွေပေါ်မှာ OS တင်နိုင်ပါတယ်။ ဒီထပ်ပို ပြီး partiton ပိုင်းရမယ် ဆိုရင်တော့ extended partition ပဲ ပိုင်းလို့ရမှာပါ။ Extened Partiton ဆိုပြီးတော့သာ နာမည် ခံတာပါ တစ်ကယ်တမ်းက သူ့အတွင်းမှာ ခွဲလိုက်သော partiton များကို logical partiton တွေဆိုပြီး သတ်မှတ်ပါတယ်။ တစ်နည်းအားဖြင့် logical partition များ အတွက် placeholder အနေနဲ့ ပဲ နာမည်ခံတာပါ။ Windows မှာဆိုရင် FAT နဲ့ format ချတယ် NTFS နဲ့ format ချတယ်ဆိုပြီး ရှိပါတယ်။ အခု Linux မှာလဲ format ချသောအခါသုံးမည့် common filesystem များကတော့ "ext2, ext3, ext4(latest)" ကျွန်တော်တို့ ထုံးစံအတိုင်းပဲ latest ဖြစ်လေ file size တွေကို ပိုပြီး performance ကောင်းကောင်းနှင့် handle လုပ်နိုင်လေပဲဖြစ်ပါတယ်။ ဒီနေရာမှာ ext3 ကနေစပြီး journaling file system စပါလာပါတယ်။ Linux ရဲ့ journal ဆိုတဲ့သဘောတရား ကတော့ system crash ဖြစ်လို့ unexpected shutdown တွေ ဖြစ်ရင် စက်ပြန်တက်တဲ့ အချိန် hard disk တွေကို disk checking လုပ်တဲ့အချိန်မှာ journaling filesystem မပါတဲ့ သူက every data structure တိုင်းကို ပြန်စစ်ရပြီး ပါတဲ့သူကတော့ journaling filesystem မှ ပြတဲ့ damage data structures တွေကိုပဲ ပြန်စစ်ခြင်းဖြင့် အလုပ် ပိုပြီးမြန်ဆန်သွားပါတယ်။

Tutorial
              အခု ကျွန်တော်တို့ Linux CentOS 6.4 မှာ အခြခံပြီး tutorial ပြုလုပ်မှာ ဖြစ်ပါတယ်။ အရင်ဆုံး Linux ပေါ်မှာ new storage attachedလုပ်ထားသည်ကိုသိချင်ရင် #fdisk -l ဆိုပြီး ပုံမှာ ရိုက်ပြထားပါတယ်။ 
  • အခုပုံမှာ ကျွန်တော်တို့ new disk အနေနဲ့ "/dev/sdb" ကိုတွေ့ရမှာဖြစ်ပါတယ်။အခုချိန်မှာတော့ partition မပိုင်းရသေးတဲ့အတွက် partition list မှာ ဘာမှ ပြမှာ မဟုတ်သေးပါ။ အပေါ်ပိုင်းမှာ ရှိတဲ့ "/dev/sda" ကတော့ OSတင်ထဲက အသုံးပြုထားတဲ့ အပိုင်းဖြစ်ပါတယ်။
  • အခု စပြီး hard disk ကို partition ပိုင်းတော့မယ်ဆိုရင် command အနေနဲ့ "#fdisk /dev/sdb" ဆိုပြီး အသုံးပြုပါတယ်။
  • အခု config file ထဲကို စတင်ရောက်ရှိတဲ့အချိန်မှာ ပုံမှာ ပြထားတဲ့အတိုင်း ကျွန်တော်တို့ "m" for help ဖြစ်ပြီး "create new partition" ဆိုလျှင် "n" ကိုနိုပ်ရမှာ ဖြစ်ပါတယ်။ "p" keyword ကတော့ partition ပိုင်းထားတာ ရှိရင် ပြပေးဖို့ သုံးပါတယ် လောလောဆယ် တော့ ဘာမှရှိမှာမဟုတ်သေးပါ။
  • အခုစပြီး partition ပိုင်းရန် "n" ကိုနုှိပ်ပါတယ် ပထမဆုံးကတော့ "primary" or "extended" partition ဘယ်လိုမျိုးပိုင်းချင်လဲ ဆိုပြီးတော့ပါ ဒီနေရာမှာ "p" လို့ ရေးလျှင် "primary" ဆိုပြီး ပိုင်းမည်ဖြစ်ပါတယ်။ နောက် partition number "1" ဟုသတ်မှတ်ပြီး "first cylinder" ကို default ထား ရျ် "last cylinder" ကို အခု ကျွန်တော်တို့ hard disk space သည် 10GB ရှိတဲ့အတွက် တစ်ဝက် "5GB(+5G)" လောက်ပိုင်းပါမယ်။ ပြီးတာနဲ့ "p" နှင့် ကြည့်လျှင် new partition ကို တွေ့ရမှာပါ။ config ထဲက ပြန်မထွက်ခင် "w" command ကို ရိုက်မှသာ အခု new partition ကို အသုံးပြုနိုင်မှာ ဖြစ်ပါတယ်။ 
  • အခု ပြန်ပြီး #fdisk -l နှင့် ကြည့်လျှင် အသစ်ပိုင်းလိုက်သော new partition ကိုတွေ့မှာဖြစ်ပါတယ်။
  • အခု အပေါ်ကပုံကတော့ partition ပိုင်းပြီးလျှင် ထို partition ကို အသုံးပြုရန်အတွက် format ချသည်ကို ပြထားပါတယ်။ "#mkfs.ext4 /dev/sdb1" ဆိုပြီး ext4 filesystem နဲ့ ချမှာဖြစ်ပါတယ်။ အောက်နားက highlight ကတော့ ext4 သည် journaling support လုပ်သည်ကို ပြထားခြင်းဖြစ်ပါတယ်။
  • အခုရလာတဲ့ new partition ကို အသုံးပြုဖို့ရာ Linux မှာ Mount လုပ်တယ်လို့ခေါ်ပါတယ်။ ထိုသို့ Mount လုပ်မှသာ ထို partition ကို အသုံးပြုနိုင်မှာပါ။  command ဖြစ်တဲ့ "#mount /dev/sdb1 /opt/mountest" ဆိုတာကတော့ အခု အသစ် လုပ်ထားတဲ့ 5GB partition ကို "/opt/mountest" ဆိုတဲ့ directory path မှာ အသုံးပြုစေမှာ ဖြစ်ပါတယ်။ တစ်နည်းအားဖြင့် မူလရှိတဲ့ "/dev/sda" partition မှ သတ်မှတ်ထားတဲ့ space ကို မသုံးတော့ဘဲ သီးသန့် new partition space ဖြင့် အသုံးပြုမှာ ဖြစ်ပါတယ်။ အခု Mount လုပ်ဖို့ အသုံးပြုလိုက်သော command ဟာ temporary ပဲဖြစ်ပြီး OS ကို reboot လုပ်လိုက်လျှင် "/opt/mountest" သည် အရင် partition ထဲကို ပြန်ရောက် သွားမှာဖြစ်ပါတယ်။ ထို့ကြောင့် အမြဲတမ်း permanent ထားစေချင် လျှင် "/etc/fstab" ဆိုတဲ့ config file ထဲမှာ configuration လုပ်ရမှာဖြစ်ပါတယ်။


  • Config File ဖြစ်သော "/etc/fstab" ထဲဝင်ရောက်ပြီးသောအခါ ပုံတွင် ပေးထားသည့်အတိုင်း new line တစ်ခု create လုပ်ရပါမည်။ "/dev/sdb1" ကတော့ new partition name ဖြစ်ပြီး "/opt/mounttest" ကတော့ new partition ကို အသုံးပြုမည့် directory path လမ်းကြောင်းပါ "ext4" filesystem ကို အသုံးပြုထားပါတယ်။ "defaults" ဆိုတာကတော့ default အနေနှင့် ယခု new partition သည် "automount,only root can mount(or)umount,read,write access" ဆိုပြီး အကြုံးဝင်ပါတယ်။ ဘာလို့လဲဆိုတော့ တစ်ခြား policy တွေဆိုရင် ဥပမာ specific user တစ်ယောက် ကပဲ mount,unmount လုပ်နိုင်တာတို့ partiton ကို စက်စတက်ခြင်း auto mount မဖြစ်အောင် ထားတာတို့ read only ပဲပေးထားတာတို့ ဆိုတာမျိုးတွေ အသုံးပြုနိုင်ပါတယ်။ ဒီနေရာမှာတော့ default ကိုပဲ ပေးထားပါတယ်။ နောက် " 0 0 " ဆိုတာကတော့ ပထမ "0" သည် dump ဆိုတဲ့ utilities ကိုအသုံးပြုပြီး backup လုပ်မလားလို့မေးတာဖြစ်ပါတယ် "0" ထားထားသောကြောင့် "disabled" မလုပ်ဖူးဆိုပြီး ပြောထားတာပါ "1" ဆိုရင် enable ဖြစ်ပါတယ်။ နောက်ဆုံး "0" ကတော့ အခု partition ကို boot time မှာ filesystem check လုပ်မလား ဆိုတဲ့ ပုံစံပါ သူ့ဆီ မှာ priority အလိုက်သွား ပါတယ် အရေးကြီးတဲ့ partition တွေဆိုရင် (eg. root partition) priority "1" ထားပြီး သူ့နောက်မှာ အစဉ်လိုက် သွားမှာဖြစ်ပါတယ် "0" ကတော့ disable ပါ။
  • ပြီးသွား ပြီဆိုရင်တော့ ကျွန်တော်တို့ #mount -a (-a =all) or #mount /opt/mounttest ဆိုပြီး ရိုက်လိုက်လျှှုင် သတ်မှတ်ထား တဲ့ အတိုင်း "/opt/mounttest" directory မှာ new partition "/dev/sdb1" နှင့် အသုံးပြုနေသည် ကို တွေ့ရမှာ ဖြစ်ပါတယ်။ "#df -h (h = human readable)" ဆိုတာကတော့ windows မှာ ဆိုရင် folder ကို right click -> properties မှာ size ဘယ်လောက်ရှိလဲ ဆိုပြီး ကြည့်တဲ့ ပုံစံ ပါပဲ Linux မှာ တော့ "df" command က  directories တွေရဲ့ size ကို summary ကြည့်ချင်လျှှုင် သုံးပြီး "du" command ကတော့ file တစ်ဖိုင်/တစ်ခု ချင်းရဲ့ size ကို ကြည့်ချင်လျှင် အသုံးပြုပါတယ်။

  • အခု mount လုပ်ထားတာတွေကို အသုံးမပြုချင်တော့ဘူးဆို လျှင် အခုလိုမျိုး /etc/fstab မှာ permanent  ထား ထားလျှင် config line ကို ဖျက်လျှင်ပဲဖြစ်ဖြစ် ရှေ့မှာ # sign ထားတာပဲဖြစ်ဖြစ် ပြုလုပ်ပြီး အပြင်ဖက် terminal မှာ "umount -a" (or) "umount  /opt/mounttest" command အသုံးပြုမှသာ နောက် စက် reboot ချလျှှုင်လဲ mount ပြန်မလုပ်တော့မှာဖြစ်ပါတယ်။ temporary အနေနဲ့ ဆိုရင်တော့ terminal မှာပဲ "#umount /opt/mounttest" ဆိုပြီး ရိုက်လျှင်ရပါတယ် စက် reboot ချပြီး ပြန် တက် လာလျှင်တော့ ပြန် Mount လုပ်နေမှာဖြစ်ပါတယ်။ 
Creating Swap Memory
       Swap memory ဆိုသည်မှာ hard disk ၏ spaceတစ်ချို့ကို ယူသုံးပြီး Computer ရဲ့ RAM ကို support လုပ်ပေးတာဖြစ်ပါတယ်။ ဘယ်လိုမျိုးလဲ ဆိုရင်  RAM သည် User ၏ processes မှန်သမျှကို သူ့ပေါ်မှာ တင်ပြီး running လုပ်နေတဲ့အခါ မနိုင်တာမျိုးလဲ ရှိပါတယ် ထိုအချိန်မှာ RAM က မနိုင်တော့တဲ့ သူ၏ process တစ်ချို့ကို swap memory ဖက်ခြမ်းကို share ပေးခြင်းဖြင့် အလုပ်လုပ်စေပါတယ်။ swap memory ရဲ့ အားနည်းချက်ကတော့ သူသည် hard disk ၏ space ကို ယူထားသောကြောင့် အလုပ်လုပ် ရာတွင် RAM ထက် များစွာ နှေးကွေးမည် ဖြစ်ပါတယ်။ ထို့ကြောင့် RAM က swap process များများ ခိုင်း လေ computer၏ အလုပ်လုပ်နှုန်း ပိုနှေးမည် ဖြစ်ပါတယ်။ Windows ဘက်ကအခေါ်အဝေါ်ကိုတော့ virtual memory လို့သုံးပါတယ်။ အများစု ထားသည်ကတော့ physical ram ၏ တစ်ဆခွဲ/နှစ်ဆ swap ကို ပေးပါတယ်။ အခု tutorial မှာ swap space နည်းနေသောကြောင့် additional swap space ကို ဘယ်လို များလာအောင် ထပ်ပြီး ထည့်မလဲဆိုတာကို ပြုလုပ်မှာဖြစ်ပါတယ်။


Tutorial
  • အခု linux terminal တွင် swap space ကို default ဘယ်လောက်ထားထားလဲ ဆိုတာကို "#free" command နဲ့ ကြည့်ပါတယ်။ ပုံထဲမှာ free ကို နောက်က options များ ထည့်သုံးပြီး ကိုယ်လိုသလိုကြည့်နိုင်ပါတယ်။ အခု ကျွန်တော့်ရဲ့ စက်ထဲမှာတော့ swap space သည် 2GB ရှိပါ တယ်။
  •  ရှေ့က tutorial မှာ 10GB space ရှိတဲ့ /dev/sdb ကို 5GB ပဲယူသုံးထားပါတယ်။ အခု ကျန်တဲ့ space ကို swap file မှာအသုံးပြုပါမယ်။ အောက်က ပုံမှာ ကျွန်တော်တို့ "#fdisk /dev/sdb" နှင့် ဝင်ပြီး ကျန် partition ကိုပိုင်းမှာပါ။ swap တည်ဆောက်မယ်ဆိုလဲ အရင်ဆုံးတော့ hard disk partition ပိုင်းရမှာပါ ပြီးမှ swap filesystem ကို change ပေးရမှာဖြစ်ပါတယ်။ partition ပိုင်းတာတွေကို အပေါ် tutorial မှာ ပြောပြီးသား ဖြစ် ပါတယ်။ အခု ဒီမှာ လက်ကျန် space အကုန်ယူမှာဖြစ်သောကြောင့် default အတိုင်းပဲသွားမှာပါ။ ပြီးသွား ရင်တော့ နောက်ထပ် "/dev/sdb2" new partition ကို တွေ့ရမှာဖြစ်ပါတယ်။
  •  ပြီးရင် ကျွန်တော်တို့ ရလာတဲ့ partition အသစ်ကို swap space အနေနဲ့ သုံးလို့ရအောင် system id ကို ပြောင်းပါမယ် သဘောက hard disk partition တွေဆိုရင် "ext4" နဲ့သုံးသလို swap ဆို လျှှုင်လဲ သက်သက် system id  ရှိပါတယ်။ အောက်ကပုံတွင် အရင်ဆုံး "m" နှင့် help ခေါ်မည်ဖြစ် ပြီး "system id" ပြောင်းချင်ပါက "t" ကို နှိပ်ပါမယ်။ partition number ရွေးခိုင်းလျှင် 2nd device "/dev/sdb2" ကို change မှာဖြစ်သောကြောင့် "2" ကို နှိပ်ပါမည်။ System id Hex Code List ကိုကြည့်ရန် "L" ကို နှိပ်မည်ဖြစ်သည်။ ထို့နောက် swap ၏ system id "82" ကို ရွေးမည်ဖြစ်သည်။ ထို့နောက် table ကို ပြန်ကြည့် လျှင် "/dev/sdb2" ၏ system id သည် "Linux swap/Solaris" ဆိုပြီး ပေါ်နေမည်ဖြစ်သည်။


  • ပြီးလျှင် hard disk ကိုလဲ format ချရသလို swap ကိုလဲ system က swap partition ရယ်လို့ နားလည်အောင် "mkswap /dev/sdb2" ဆိုပြီး ပြုလုပ် ရမှာဖြစ်ပါတယ်။ partition ပြုလုပ်ပြီး "free" command နှင့် ကြည့်သောလည်း နဂိုအတိုင်းပဲ ရှိနေပြီး "swapon /dev/sdb2" ဟု ရိုက်မှ သာ မူလ swap space 2GB မှ 7GB ကို ပြောင်းသွားသည်ကိုတွေ့ရမည်။
    • အခု ရိုက်လိုက်တဲ့ command "swapon /dev/sdb2" သည် temporary ပဲဖြစ်ပြီး OS reboot  လုပ်လျှင် ယခင် swap space 2GB ကိုပြန် ရောက်မှာပါ။ ထို့ကြောင့် ထုံးစံအတိုင်း "/etc/fstab" ထဲ မှာ configure လုပ်မှသာ permanent ဖြစ်မှာ ဖြစ်ပါတယ်။ အခု အောက်ကပုံမှာ swap အတွက် new config line တစ်ခု ရေးပြထားပါတယ်။ hard disk မဟုတ်တဲ့ အတွက်ကြောင့် location တွေ မဟုတ်ဘဲ file system သည်လဲ swap အသုံးပြုမည့် နေရာ မှာလဲ swap ကို ထည့်ရပါမယ်။ အပေါ် က highlight လုပ်ထားသည်ကတော့ OS Install လုပ်ကထဲ က သတ်မှတ်ထားသော swap 2GB ဖြစ်ပါတယ်။ ထိုနေရာမှာ ပုံမှန် သုံးနေကျ eg. "/dev/sdb" ဟုမသုံးပဲ UUID နဲ့ သုံးပြုထားတာပါ။ "tune2fs -l /dev/sdb(1,2,3)" ဖြင့် System UUID ကြည့်နိုင်ပါတယ်။
    • ထို့နောက် "swapoff" "swapon" ဖြင့် refresh လုပ်ပြီး swap size ကို ပြန်ကြည့်ရင် 7GB ဖြစ်နေပြီး permanent ဖြစ်သောကြောင့် စက် rebootလုပ်လဲ ပြန်ပြောင်းမှာမဟုတ်တော့ပါ။ မသုံးချင်ရင်တော့ /etc/fstab ထဲက file ကို ဖျက်လို့ ရပါတယ်။

    Creating Swap File Instead of using separated disk space
                 အကယ်ရျ် swap memory space ကို partition တစ်ခုလုံးကဲ့သို့ အသုံးမပြုချင်လျှင် (or) သက်သက် swap အတွက် new disk space partition အလုံအလောက် မရှိတော့ တဲ့အချိန်မှာ hard disk ပေါ် မှာ ပဲ storage file တစ်ခုတည်ဆောက်ပြီး ထို file ကို swap အတွက် အသုံးပြုနိုင်အောင် ပြုလုပ် ပေးလို့ရပါတယ်။

    storage file တစ်ခုတည်ဆောက်ဖို့ Linux မှာ "dd" command ကို အသုံးပြုပါတယ်။ swap ရဖို့ရန် အတွက် "dd" command ကိုသုံးတယ်လို့ မဆိုလိုပါ။ swap file ဖြစ်ရန် အတွက် storage file တစ်ခု ဆောက်ပေးခြင်းသာဖြစ်သည်။  "dd" သည် powerful command ဖြစ်ပြီး storage backup , backup MBR, etc တို့မှာလဲ အသုံးပြုပါတယ်။ အောက်ကပုံတွင် "if=/dev/zero" ဆိုသည်မှာ Input File ကို /dev/zero (or) special file လို့ခေါ်တဲ့ null character မှ storage ယူသုံးမည်။ ထို့နောက် "of=swap-fs" ထို storage file ကို output file swap-fs အနေနဲ့ ထုတ်မည်ဖြစ်သည်။ "count=1024" ဆိုသည်မှာ တစ်ကြိမ်မှာ 1024Bytes read/write လုပ်မည်ဟုပြောခြင်းဖြစ်သည်။ နောက်ဆုံးတစ်ခုဖြစ်သော "bs=1024000" က null ဖြစ်သော /dev/zero မှ block size 1024000(or)1GB ရှိသော storage ယူမည်ဖြစ်သည်။http://linuxaria.com/howto/the-dd-command-on-linux-terminal?lang=en
    •   ထို့နောက် permanent ဖြစ်ချင်ပါက "/etc/fstab" ထဲမှာ ထည့်ရမည်ဖြစ်သည်။ နောက် swap command များဖြစ်တဲ့ "mkswap swap-fs" ဖြင့် swap file ဖြစ်အောင် ပြုလုပ်မယ်။ နောက် swapon/swapoff ဖြင့် refresh လုပ်ကြည့်ပြီးနောက် "free" command ဖြင့် ကြည့်ကြည့်လျှင် နဂို 2GB မှာ +1GB ထပ်တိုးလာမည်ကို တွေ့ရမည်။


    Managing Disk Quota
                   Disk Quota သတ်မှတ်တယ်ဆိုတာကတော့ ကျွန်တော်တို့ File Server တွေပေါ်မှာ clients တွေ ရဲ့ data storage ကို limit နှင့်သိမ်းဆည်းနိုင်ဖို့ ရာသုံးပါတယ် windows ပဲဖြစ်ဖြစ် Linux file server ဖြစ်ဖြစ် disk quota သတ်မှတ်နိုင်ပါတယ်။ အခု tutorial မှာ local user နဲ့ပဲ စမ်းထားပြီး ပြန်စမ်းချင်လျှင် SAMBA File Server နှင့် ပြန်စမ်းလို့ ရပါတယ်။

    အရင်ဆုံး testing လုပ်ဖို့ အဆင်ပြေရန် SELinux ကို ပိတ်ထားပါမယ်။


    • နောက်ပြီး တော့  /etc/fstab ထဲတွင်ကျွန်တော်တို့ quota သတ်မှတ်ချင်တဲ့ disk partition ၏ defaults ဆိုတဲ့ စာကြောင်းနောက်တွင် "usrquota,grpquota" for users and groups ထည့်မည် ဖြစ်ပါတယ်။ ပုံတွင် /opt/mounttest ဆိုသော folder တွင် quota သတ်မှတ်မည်ဖြစ်သည်။
    • ထို့နောက်တွင် "quotacheck" command ဖြင့် ကြည့်ပါက ပုံတွင်ပြထားသည့်အတိုင်းပေါ်မည် ဖြစ်ပြီး ၎င်း /opt/mounttest ထဲဝင်ကြည့်လျှင် "aquota.user/aquota.group" ဆိုပြီး ပေါ်မှသာ ထိုပေါ်တွင် quota applied ဖြစ်သွား ပြီး ဟုယူဆ ရပါမည်။

    • ထို့နောက် local user ဖြစ်သော "yan" အတွက် quota limit သတ်မှတ်မည်ဖြစ်ပါသည်။ quotalimit သတ်မှတ်ရန် "#edquota -u yan" ဆိုပြီး terminal ပေါ်တွင်ရိုက်ပါက အောက်ပုံတွင် limit သတ်မှတ်ရန် ပေါ်လာမည်ဖြစ်သည်။ ထိုနေရာတွင် blocks, inodes and soft,hard ဆိုပြီး ရှိပါသည်။ blocks ၏ soft and hard တွင် quota limit သတ်မှတ်ပါက user သည် hard disk ပေါ် တွင် block size တစ်နည်းအားဖြင့် အခုပုံ အတိုင်းဆိုလျှင် soft limit အနေနှင့် 4096KB(or)4MB အတွင်း အထိ ရမည်ဖြစ်ပြီး hard limit ဖြစ်သော 10240KB (or) 10MB ထက်ကျော်ရျ် မရပါ။ နောက် တစ်ခု ဖြစ်တဲ့ "inodes" ဆိုသည်မှာ blocks ကဲ့သို့ size limit နှင့် quota ကန့်သတ်သလို မဟုတ်ပဲ files အရေအတွက် နှင့် ကန့်သတ်တာဖြစ်ပါတယ် ဥပမာ soft limit ကို file 4 ခု  hard limit ကို file 5 ခုဟု သတ်မှတ်ပါက users သည် /opt/mountest ထဲတွင် file 3 ဖိုင်သာ အနည်းဆုံး သိမ်းနိုင်မည် ဖြစ်သည်။
    •  နောက်ထပ်တစ်ခုက ဥပမာ soft limit ကို 8MB နဲ့ hard limit ကို 10 MB ထားတယ် ဆိုလျှင် hard limit ကတော့ ရှင်းပါတယ် ဘယ်လိုပဲဖြစ်နေနေ 10MB ထပ်တော့ ကျော်လို့ မရပါ။ ဒါပေမဲ့ soft limit ကတော့ 8MB ထက်ကျော်လို့ ရတယ် ဒါပေမယ့် ကျော်တဲ့ အချိန်ကစပြီး disk quota တွင် "grace period" ဆိုတာ ပါရှိပါတယ် သူကဘယ်လိုလုပ်သလဲဆိုတော့ အခု 8MB ထက်ကျော်သွားတဲ့ အချိန်ကစပြီး count လုပ်ပါတယ် grace period default က 7days ဖြစ်ပြီး 7 ရက် အတွင်း ထိုlimitကျော်သွားတာကို ပြန်လျော့လျှင် ဘာမှမဖြစ်ဘဲ ပြန်ရျ် count ကို restart ပြန်ပြန်လုပ် မှာဖြစ်ပြီး အကယ်ရျ် ၈ရက်မြောက်နေ့ အထိ limit ကျော်နေပါက users သည် hard limit 10MB ပေးထားသော်လည်း ဘာမှ ထပ်ပြီး save လုပ်လို့ ရမှာမဟုတ်တော့ပါ။

    • ထို့နောက် quota apply ဖြစ်ရန် "quotaon -a" ဟုရိုက်လျှင် စတင် အကျုံးဝင်မည်ဖြစ်သည်။

    • ပြီးလျှှုင် "#repquota /opt/mountest" နှင့်ကြည့်ပါက "user=yan" ကို quota သတ်မှတ်ထား သည်ကိုတွေ့ရပါမည်။
    Testing အနေနဲ့ ကျွန်တော်တို့ အခု 2MB,4MB,20MB ရှိတဲ့ file 3 ခုကို တည်ဆောက်ထားပါ တယ်။ 
    • နောက်ဆုံး copy ကူးပြီး ထည့်ကြည့်တဲ့ အချိန်မှာ 2MB ရှိတဲ့ file ကတော့ အဆင်ပြေပြေနဲ့ ရောက် သွားပြီး နောက် 4MB ဖြစ်သွားတဲ့ အချိန်မှာ ခုနက 2MBနှင့် ပေါင်းပြီး 6MB ဖြစ်သွားပါတယ်။ဒါပေ မယ့် soft limit ကိုကျော်လို့ရသောကြောင့် "warning sign" ပဲရပြီး "Grace Period" စတင် count လုပ်မည်ဖြစ်ပါတယ။် နောက်ဆုံး တစ်ခု ဖြစ်တဲ့ 20MB ကို ထပ်ထည့်လိုက်တဲ့အခါမှာ hard limit ပါကျော်လွန်သွားသောကြောင့် "write failed" ဆိုပြီး error လာတက်ပါတယ်။ ls command နှင့် ကြည့်တဲ့ ချိန်မှာ file1 and file2 ပဲ size အပြည့်ရှိပြီး 20MB fileကတော့ file size အပြည့်မဟုတ် ဘဲ hard limit 10MB ထဲမှ လက်ကျန် sizeကိုသာ ရရှိတာဖြစ်ပါတယ်။ grace period သတ်မှတ် ချင်လျှင် "edquota -t" command ကိုသုံးပါတယ်။ နောက် quota limit ကို ပြန် none ထားချင်ပါ က "setquota -u yan 0 0 0 0 -a" ကို သုံးပါတယ်။












    Share:

    0 comments:

    Post a Comment

    Note: Only a member of this blog may post a comment.