扩大VMware虚拟机中linux硬盘空间
轉(zhuǎn)載自:http://www.cnblogs.com/yorian/archive/2012/02/06/2340438.html
今天上午接到通知說服務(wù)器掛了,經(jīng)過檢查發(fā)現(xiàn)原因是Linux的虛擬機根分區(qū)已經(jīng)使用100%,以至于服務(wù)不能正常進行。
經(jīng)過小小的研究,順利解決問題,把服務(wù)器的空間由4G擴成12G。現(xiàn)將執(zhí)行全過程總結(jié)如下,以供分享。
首先,介紹下大體的解決思路,要想擴充,硬件上要有準(zhǔn)備,說白了也就是要有一塊新的空間來供我們使用。對于實體機我們需要準(zhǔn)備一塊新的硬盤,而對于VMWare虛擬機,我們只需要使用vmware自帶的軟件擴充下磁盤大小。
擴充磁盤,只意味著硬件條件得到滿足。接下來就需要對新的磁盤空格進行合理的操作,來擴充我們需要的分區(qū)。
值得注意的是,這里我們基于LVM來操作的。如果您的環(huán)境不是LVM的,可以考慮改成LVM的,否則后文無需再讀。具體執(zhí)行過程將細細道來。
第一步、使用VMware工具擴容分配的硬盤空間
1、 vmware 提供一個命令行工具,在Windows下為vmware-vdiskmanager.exe 位于 vmware 的安裝目錄下,比如 C:Program FilesVMwareVMware Workstationvmware-vdiskmanager.exe.
在Linux下有直接的vmware-vdiskmanager指令。
進行的操作:在 windows 下運行 CMD , 轉(zhuǎn)到 vmware 的安裝目錄,可執(zhí)行vmware-vdiskmanager.exe;在Linux下,直接敲入vmware-vdiskmanager ,可執(zhí)行該指令擴充使用的指令: vmware-vdiskmanager -x 16Gb myNewlinux.vmdk
說明:要擴容的系統(tǒng)這時不能在運行 ,參數(shù) “-x” 表示要擴展虛擬機硬盤空間,緊隨其后的數(shù)字是要擴展到的大小 ,而非增加量 (本例為擴展到 16GB ,這是一個磁盤總量,包含了原先的磁盤容量 ) 。最后是指定要操作的虛擬機磁盤的具體文件,要是路徑名中有空格,必須以雙引號括起來。按回車鍵開始執(zhí)行,執(zhí)行完畢,退出命令提示符窗口,重啟 VMware ,會發(fā)現(xiàn)虛擬機硬盤空間已變成 16GB 了。
2、我們重啟虛擬機后,發(fā)現(xiàn)虛擬機的硬盤是變成 16GB 了,但進入 linux 系統(tǒng)后,用 “df -h”查看發(fā)現(xiàn)硬盤空間還是原先那么大。雖然已經(jīng)擴大了磁盤,但是由于還沒有經(jīng)過分區(qū),指定文件系統(tǒng),所以 linux 操作系統(tǒng)無法識別。其實就相當(dāng)于你的硬盤雖然大了,但是你并沒有對其進行分區(qū)是一個道理。
第二步、使用Linux下的fdisk工具進行分區(qū)
首先,需要以root身份登錄系統(tǒng)。
fdisk 命令: fdisk -l : 打印當(dāng)前的磁盤分區(qū)表,這時我們可以看到磁盤的總量的確增加到16GB 了,但是分區(qū)只有以前的那幾個原有的分區(qū)。
鍵入命令: fdisk /dev/sda “sda 就是經(jīng)過擴容的硬盤,為 SCSI 硬盤, IDE 類型硬盤對應(yīng)為 hda ,是對該硬盤進行操作 ”
鍵入: m “ 列出 fdisk 的幫助 ”
我們在這里是要添加一個新分區(qū),即將擴容出來的那部分做成一個新分區(qū),這樣才能被操作系統(tǒng)掛載識別。
鍵入: n ” 命令 n 用于添加新分區(qū) ”
此時, fdisk 會讓你選擇添加為邏輯分區(qū)呢(編號從 5 開始)還是主分區(qū)(編號 1 到 4 )。
選擇主分區(qū)吧,則鍵入 p ;選擇邏輯分區(qū)鍵入 l 。
我們選擇主分區(qū)于是:
鍵入: p ” 選擇創(chuàng)建主分區(qū) “
此時, fdisk 會讓你選擇主分區(qū)的編號,如果已經(jīng)有了主分區(qū) sda1 , sda2 ,那么編號就選3 ,即要創(chuàng)建的該分區(qū)為 sda3.
鍵入: 3
此時, fdisk 又會讓你選擇該分區(qū)的開始值這個就是分區(qū)的 Start 值( start cylinder );這里最好直接按回車,如果您輸入了一個非默認的數(shù)字,可能會造成空間浪費;
對于分區(qū)的 End 值(end cylinder),同樣直接按回車。這時候會顯示出你新建分區(qū)的柱面范圍和空間大小。
此時鍵入: w 表示” 保存所有并退出,分區(qū)劃分完畢 “
我們的新建分區(qū)/dev/sda3,卻不是LVM的。所以,接下來使用fdisk將其改成LVM的。
[root@CNGI-SIP6-BUPT ~]# fdisk /dev/sda Command (m for help): mCommand (m for help): n //創(chuàng)建分區(qū) Command actione extendedp primary partition (1-4) p //創(chuàng)建主分區(qū) Partition number (1-4): 3 //創(chuàng)建id號為3的分區(qū) First cylinder (2611-5221, default 2611): 2611 //指定開始位置 Last cylinder or +size or +sizeM or +sizeK (2611-5221, default 5221): 5221 //結(jié)束位置Command (m for help): t //改變分區(qū)系統(tǒng)id Partition number (1-4): 3 //指定分區(qū)號 Hex code (type L to list codes): 8e //指定要改成的id號,8e代表LVM。 Command (m for help): w我們現(xiàn)在還不能用這個分區(qū) , 因為我們沒格式化。這時要重啟系統(tǒng)就能夠在 dev 下面看到 sda3 ,如果不重啟不能進行下面操作。
重啟后,在此查看fdisk -l
Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 1044 8281507+ 8e Linux LVM /dev/sda3 1045 2088 8385930 8e Linux LVM可以看到/dev/sda3已支持LVM。
第三步、格式化該新添加的分區(qū)
鍵入:
mkfs -t ext3 /dev/sda3或者
mkfs.ext3 /dev/sda3運行mkfs.ext3 /dev/sdb3報錯“Could not stat /dev/sdb3”,但是這個分區(qū)肯定是存在的,剛剛 fdisk 加上去的,查了一下資料:
運行
partprobe再執(zhí)行mkfs.ext3 /dev/sdb4 ,就可以了
來格式化指定的分區(qū),依次類推,現(xiàn)在的系統(tǒng)大部分都是 ext3 格式,如果你需要其它的,可以查看mkfs 的幫助。
到此為止,我們就新建了一個分區(qū)/dev/sda3,此時我們已經(jīng)可以通過掛載,來使用這個新的空間。但是對于我,這并不能滿足我的需求,因為服務(wù)器的服務(wù)程序是在根目錄上的,目前根目錄空間已經(jīng)使用完畢,所以能把新建的分區(qū)使用在根目錄上,分擔(dān)根目錄的空間,才能解決問題。
下面用到的理論是基于LVM的,如果不知道的話,建議稍微查些資料有助于理解。當(dāng)然,一步步的跟我做,應(yīng)該也沒有問題。
第四步、擴充根分區(qū)
接著,使用vgextend 命令加到lvm組里面去,做如下操作:
[root@CNGI-SIP6-BUPT ~]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert LogVol00 VolGroup00 -wi-ao 3.97G LogVol01 VolGroup00 -wi-ao 3.91G [root@CNGI-SIP6-BUPT ~]# pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created [root@CNGI-SIP6-BUPT ~]# vgextend VolGroup00 /dev/sda3 (其中是當(dāng)前需要擴充的lvm組名,可以通過df -h查看,例如我的是: /dev/mapper/VolGroup00-LogVol00) Volume group "VolGroup00" successfully extended You have new mail in /var/spool/mail/root [root@CNGI-SIP6-BUPT ~]# vgdisplay --- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 15.84 GB PE Size 32.00 MB Total PE 507 Alloc PE / Size 252 / 7.88 GB Free PE / Size 255 / 7.97 GB VG UUID 3vSeag-Q74D-Gn1b-OHEq-zyH1-YgSO-ThhBCp主要查看Free PE / Size 255 / 7.97 GB,說明我們最多可以有7.97G的擴充空間。
最后,給根分區(qū)增加空間
[root@CNGI-SIP6-BUPT ~]# lvextend -L +7.96G /dev/VolGroup00/LogVol00 /dev/sda3 Rounding up size to full physical extent 7.97 GB Extending logical volume LogVol00 to 11.94 GB Logical volume LogVol00 successfully resized [root@CNGI-SIP6-BUPT ~]#[root@CNGI-SIP6-BUPT ~]# vim /etc/fstab/dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0 ~邏輯卷現(xiàn)在使用的就是ext3的文件系統(tǒng)最后擴展一下文件系統(tǒng),此處不需要卸載,就ok了
要先做fsck,檢查文件系統(tǒng):e2fsck -f /dev/VolGroup00/LogVol00
告訴系統(tǒng),分割區(qū)大小有調(diào)整了,以下以實際情況為主
[root@CNGI-SIP6-BUPT ~]# resize2fs /dev/VolGroup00/LogVol00 resize2fs 1.39 (29-May-2006) Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required Performing an on-line resize of /dev/VolGroup00/LogVol00 to 3129344 (4k) blocks. The filesystem on /dev/VolGroup00/LogVol00 is now 3129344 blocks long.到此所有操作完畢,使用df -h來查看擴充后的空間大小。是不是如愿以償?shù)脑黾恿?#xff0c;成就感呼呼的~~
總結(jié)
以上是生活随笔為你收集整理的扩大VMware虚拟机中linux硬盘空间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle几种查找和删除重复记录的方法
- 下一篇: PLSQL Developer中数值字段