擴大VMware虛擬機中linux硬盤空間

原文地址:http://blog.sina.com.cn/s/blog_709919050100wap1.html

今天上午接到通知說服務器掛了,經過檢查發現原因是Linux的虛擬機根分區已經使用100%,以至於服務不能正常進行。

經過小小的研究,順利解決問題,把服務器的空間由4G擴成12G。現將執行全過程總結如下,以供分享。

首先,介紹下大體的解決思路,要想擴充,硬件上要有準備,說白了也就是要有一塊新的空間來供我們使用。對於實體機我們需要準備一塊新的硬盤,而對於VMWare虛擬機,我們只需要使用vmware自帶的軟件擴充下磁盤大小。

擴充磁盤,只意味着硬件條件得到滿足。接下來就需要對新的磁盤空格進行合理的操作,來擴充我們需要的分區。

值得注意的是,這裏我們基於LVM來操作的。如果您的環境不是LVM的,可以考慮改成LVM的,否則後文無需再讀。具體執行過程將細細道來。

第一步、使用VMware工具擴容分配的硬盤空間

1、 vmware 提供一個命令行工具,在Windows下爲vmware-vdiskmanager.exe 位於 vmware 的安裝目錄下,比如 C:Program FilesVMwareVMware Workstationvmware-vdiskmanager.exe.
在Linux下有直接的vmware-vdiskmanager指令。

進行的操作:在 windows 下運行 CMD , 轉到 vmware 的安裝目錄,可執行vmware-vdiskmanager.exe;在Linux下,直接敲入vmware-vdiskmanager ,可執行該指令擴充使用的指令: vmware-vdiskmanager -x 16Gb myNewlinux.vmdk

說明:要擴容的系統這時不能在運行 ,參數 "-x" 表示要擴展虛擬機硬盤空間,緊隨其後的數字是要擴展到的大小 ,而非增加量 (本例爲擴展到 16GB ,這是一個磁盤總量,包含了原先的磁盤容量 ) 。最後是指定要操作的虛擬機磁盤的具體文件,要是路徑名中有空格,必須以雙引號括起來。按回車鍵開始執行,執行完畢,退出命令提示符窗口,重啓 VMware ,會發現虛擬機硬盤空間已變成 16GB 了。

2、我們重啓虛擬機後,發現虛擬機的硬盤是變成 16GB 了,但進入 linux 系統後,用 "df -h"查看發現硬盤空間還是原先那麼大。雖然已經擴大了磁盤,但是由於還沒有經過分區,指定文件系統,所以 linux 操作系統無法識別。其實就相當於你的硬盤雖然大了,但是你並沒有對其進行分區是一個道理。

第二步、使用Linux下的fdisk工具進行分區

首先,需要以root身份登錄系統。

fdisk 命令: fdisk -l : 打印當前的磁盤分區表,這時我們可以看到磁盤的總量的確增加到16GB 了,但是分區只有以前的那幾個原有的分區。

鍵入命令: fdisk /dev/sda   “sda 就是經過擴容的硬盤,爲 SCSI 硬盤, IDE 類型硬盤對應爲 hda ,是對該硬盤進行操作 ”
鍵入:    m    “ 列出 fdisk 的幫助 ”
我們在這裏是要添加一個新分區,即將擴容出來的那部分做成一個新分區,這樣才能被操作系統掛載識別。
鍵入:     n    ” 命令 n 用於添加新分區 "
此時, fdisk 會讓你選擇添加爲邏輯分區呢(編號從 5 開始)還是主分區(編號 1 到 4 )。

選擇主分區吧,則鍵入 p ;選擇邏輯分區鍵入 l 。
我們選擇主分區於是:
鍵入:    p               " 選擇創建主分區 "

此時, fdisk 會讓你選擇主分區的編號,如果已經有了主分區 sda1 , sda2 ,那麼編號就選3 ,即要創建的該分區爲 sda3.
鍵入:     3
此時, fdisk 又會讓你選擇該分區的開始值這個就是分區的 Start 值( start cylinder );這裏最好直接按回車,如果您輸入了一個非默認的數字,可能會造成空間浪費;

對於分區的 End 值(end cylinder),同樣直接按回車。這時候會顯示出你新建分區的柱面範圍和空間大小。

此時鍵入: w    表示" 保存所有並退出,分區劃分完畢 "

我們的新建分區/dev/sda3,卻不是LVM的。所以,接下來使用fdisk將其改成LVM的。

[root@CNGI-SIP6-BUPT ~]# fdisk /dev/sda
Command (m for help): m

Command (m for help): n  //創建分區
Command action
   e   extended
   p   primary partition (1-4)
p  //創建主分區
Partition number (1-4): 3 //創建id號爲3的分區
First cylinder (2611-5221, default 2611): 2611 //指定開始位置
Last cylinder or +size or +sizeM or +sizeK (2611-5221, default 5221): 5221 //結束位置

Command (m for help): t //改變分區系統id     
Partition number (1-4): 3 //指定分區號
Hex code (type L to list codes): 8e //指定要改成的id號,8e代表LVM。
Command (m for help): w

我們現在還不能用這個分區 , 因爲我們沒格式化。這時要重啓系統就能夠在 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。

第三步、格式化該新添加的分區


鍵入:
mkfs -t ext3 /dev/sda3
或者
mkfs.ext3 /dev/sda3

運行mkfs.ext3 /dev/sdb3報錯“Could not stat /dev/sdb3”,但是這個分區肯定是存在的,剛剛 fdisk 加上去的,查了一下資料:

運行

partprobe

再執行mkfs.ext3 /dev/sdb4 ,就可以了

 

來格式化指定的分區,依次類推,現在的系統大部分都是 ext3 格式,如果你需要其它的,可以查看mkfs 的幫助。

到此爲止,我們就新建了一個分區/dev/sda3,此時我們已經可以通過掛載,來使用這個新的空間。但是對於我,這並不能滿足我的需求,因爲服務器的服務程序是在根目錄上的,目前根目錄空間已經使用完畢,所以能把新建的分區使用在更目錄上,分擔根目錄的空間,才能解決問題。

下面用到的理論是基於LVM的,如果不知道的話,建議稍微查些資料有助於理解。當然,一步步的跟我做,應該也沒有問題。


第四步、擴充根分區

接着,使用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 (其中是當前需要擴充的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
  
[root@CNGI-SIP6-BUPT ~]#

主要查看Free PE / Size       255 / 7.97 GB,說明我們最多可以有7.97G的擴充空間。

最後,給根分區增加空間

[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
~
邏輯卷現在使用的就是ext3的文件系統最後擴展一下文件系統,此處不需要卸載,就ok了

要先做fsck,檢查文件系統:e2fsck -f /dev/VolGroup00/LogVol00

告訴系統,分割區大小有調整了,以下以實際情況爲主
[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來查看擴充後的空間大小。是不是如願以償的增加了,成就感呼呼的~~

######################################################

其他參考資料:

【原創】VMware虛擬機中調整Linux分區大小手記http://apps.hi.baidu.com/share/detail/42894081

VMware虛擬機RedHat 4增加根目錄的磁盤空間http://www.linuxidc.com/Linux/2011-09/43607.htm

擴大VMware虛擬機中linux硬盤空間http://apps.hi.baidu.com/share/detail/24704267

Linux中VMware虛擬機增加磁盤空間的擴容操作http://www.net130.com/CMS/Pub/special/special_virtual/special_virtual_cc/2011_02_10_52947.htm

基於VMware的Linux虛擬機硬盤空間擴大:http://www.360doc.com/content/10/1117/14/4319519_70125907.shtml

把每一件簡單的事情做好,就是不簡單;把每一件平凡的事情做好,就是不平凡。
發佈了23 篇原創文章 · 獲贊 39 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章