1. 程式人生 > >linux增加/根目錄的磁碟空間(基於LVM)

linux增加/根目錄的磁碟空間(基於LVM)

linux增加/根目錄的磁碟空間(基於LVM)

問題引出:

         在測試過程中替換so檔案,報磁碟空間不足的錯誤

[[email protected] ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                       28G   27G  0  100% /

/dev/sda1              99M  9.1M   85M  10% /boot

none                 1014M  5.4M 1009M   1% /dev/shm

/dev/sdb1              19G   77M   18G   1% /NewDisk

[[email protected] ~]#

問題分析:

         這是一套公司的系統,由於當時系統部署架構的考慮,把中介軟體和資料庫部署在同一臺機器上了,並且給了30G的磁碟空間。

         系統上佔用磁碟空間的有2部分,一是軟體本身(我們的中介軟體),二是安裝的oracle資料庫。使用du命令,大概查看了下所寫磁碟大小,發現都是在長期操作中,寫到後臺資料庫的資料越來越大,導致資料庫的表空間越來越大,對應的物理檔案就是datafile,佔用了很大的表空間。

問題解決方法分析:

1、  系統不做改變,對資料庫的一些log、不用的資料進行刪除

2、  注意到系統還有一塊20G的空磁碟沒有使用(/dev/sdb1),把資料庫生成的資料遷移一部分到這塊新的磁碟並指定新生成資料到這塊磁碟上

3、  注意到系統的磁碟部署,當時使用的是lvm邏輯捲進行管理的,LVM的一個優點就是方便進行邏輯卷的動態增加,可以把/dev/sdb1這塊物理磁碟加到根目錄所在的卷組裡面,然後對根目錄所在的邏輯捲進行擴容

最後決定:方法1,2都是可行的,對自己的oracle稍有把握的人都可以實現。本人決定採用方法3,一是考慮系統本身會不斷的產生日誌等增加空間,這樣整個磁碟都被系統所用,當然包括我們的中介軟體和資料庫;二是當時設計這個系統構架的採用LVM進行管理的,可能也想到了後面雖然業務的增加,磁碟空間將不夠,將要進行動態擴容。這種設計的理念的是OK的,但是這種設計也有他很大的侷限性,下面再進行分析

LVM邏輯卷擴容的3種模式介紹

以下是自己對LVM邏輯捲進行擴容的實際應用中的3種模式進行了歸納和總結(個人觀點)

1、  不涉及根目錄的磁碟(自己用畫圖附件畫的圖,有點齪哈)


如上圖所示:sdb1只是普通的資料卷組了邏輯卷,沒有被linux的根目錄所用,這個時候,可以把第一塊磁碟剩下的未使用的分割槽(sdb2)以及第二塊磁碟sdc,第三塊磁碟sdd等都可以通過LVM管理加進邏輯卷組,然後對邏輯捲進行擴容

2、  涉及根目錄的磁碟1


如圖所示:sda1被根目錄使用,組了邏輯卷,sda2是平常所說的linux的swap分割槽,和根目錄在同一個卷組下,只是屬於不同的邏輯卷,這個時候,如果根目錄磁碟空間不夠了,要對其進行擴容。如果這塊sda當時設計的時候還有很大一部分空餘磁碟空間未用,那麼很慶幸的告訴你,這樣也是很容易把剩餘的磁碟空間通過LVM加到邏輯卷組,然後對邏輯捲進行擴容的。

3、  涉及根目錄的磁碟2


如圖所示:sda1被根目錄使用,組了邏輯卷1,sda2是swap分割槽,第一塊磁碟sda空間已經用完,必須通過新加的磁碟sdb,對根目錄所在的邏輯卷1進行擴容。那麼,恭喜你,中獎了,這是最麻煩的一種情況。要對邏輯捲進行動態調整,調整的時候要重新掛載檔案系統。因此根目錄的調整與其它lvm管理的檔案系統的調整稍有不同,必須先進入rescue模式。如果沒有linux系統相關經驗,很可能就死在最後一步linux rescue上。

具體解決問題步驟

1、 對系統做快照

這是我們測試組的真實測試環境,以下所做的操作涉及到根目錄邏輯卷的調整,萬一把系統給弄掛了,那肯定是要挨批的。

事實上,自己在解決這個問題之前,也只是理論分析,以為和LVM邏輯卷擴容的3種模式介紹中的1,2方式一樣容易解決,把系統搞死了很多次,也幸虧做了虛擬機器快照,才能保證萬一解決不成功可以回退或者多次實驗的可能性。網上查詢資料的時候,也遇到一些同行做這個操作的時候,把系統搞死了,不知道去linux rescue的時候,最後把系統重灌的惡果。

2、使用LVM進行邏輯卷的擴容

(1)對系統新加磁碟並使用fdisk進行分割槽(這裡已有省略)

(2)檢視系統的邏輯卷組vg和邏輯卷lv

[[email protected] ~]# vgs

  VG         #PV #LV #SN Attr  VSize  VFree

  VolGroup00   1   2   0 wz--n 29.88G 32.00M

[[email protected] ~]# lvs

  LV       VG         Attr   LSize  Origin Snap%  Move Copy%

  LogVol00 VolGroup00 -wi-ao 27.91G                         

  LogVol01 VolGroup00 -wi-ao  1.94G                       

或者使用vgdisplay和lvdisplay

[[email protected] ~]# vgdisplay

  --- Volume group ---

  VG Name               VolGroup00

  System ID            

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  3

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                2

  Open LV               2

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               29.88 GB

  PE Size               32.00 MB

  Total PE              956

  Alloc PE / Size       955 / 29.84 GB

  Free  PE / Size       1 / 32.00 MB

  VG UUID               Fj19eG-A1Ev-qs48-yI6b-HoL6-INnf-GwThFD

 [[email protected] ~]# lvdisplay

  --- Logical volume ---

  LV Name                /dev/VolGroup00/LogVol00

  VG Name                VolGroup00

  LV UUID                SRV5oM-Kndv-QlHn-68Pq-OlvT-LdJj-julBsj

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                27.91 GB

  Current LE             893

  Segments               1

  Allocation             inherit

  Read ahead sectors     0

  Block device           253:0

  --- Logical volume ---

  LV Name                /dev/VolGroup00/LogVol01

  VG Name                VolGroup00

  LV UUID                RxmWcw-lV95-O4T4-HanR-RvqZ-UEPZ-NPLh04

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                1.94 GB

  Current LE             62

  Segments               1

  Allocation             inherit

  Read ahead sectors     0

  Block device           253:1

[[email protected] ~]#

(3)對新磁碟建立pv

[[email protected] ~]# pvcreate /dev/sdb1

  Physical volume "/dev/sdb1" successfully created

(4)把PV加入VG

[[email protected] ~]# vgextend  VolGroup00 /dev/sdb1

  Volume group "VolGroup00" successfully extended

並使用lvdisplay 和 vgdisplay進行檢查確認

(5)擴充套件lv

[[email protected] ~]# vgs

  VG         #PV #LV #SN Attr  VSize   VFree

  VolGroup00   2   2   0 wz--n 48.50G  18.66G  

[[email protected] ~]# lvextend -L +18.5G /dev/VolGroup00/LogVol00 /dev/sdb1

  Extending logical volume LogVol00 to 46.41 GB

  device-mapper ioctl cmd 9 failed: Invalid argument

  Couldn't load device 'VolGroup00-LogVol00'.

  Problem reactivating LogVol00

由於我們的系統環境是LVM邏輯卷擴容的3種模式介紹中介紹的第三種情況,所以此時,系統就hang住了。

當時以為是在ssh遠端操作的結果,後來在圖形化介面的終端進行操作還是同樣問題。後來經過查詢資料,才知識是因為調整的時候要重新掛載檔案系統。因此根目錄的調整與其它lvm管理的檔案系統的調整稍有不同,必須先進入rescue模式。進入rescue模式,需要掛載iso光碟,弄到晚上9點多了,手頭上沒有iso光碟,就回去睡覺下載了一個,然後第二天用行動硬碟拷過來繼續幹

2、 linux的rescue模式

重啟系統,系統就這幅德行了


當然很著急,還好後面進行了問題的解決

掛載iso映象,並設定系統從CD ROM啟動


在boot:裡面輸入 linux rescue進入linux系統救援模式

按照提示一步一步進行,在是否啟用網路的時候選擇不啟用


進入下一步之後


選擇continue之後,按照提示進行命令介面

df是檢視分割槽掛載情況

由於要重置邏輯卷的大小,所以要把掛載的檔案系統給解除安裝了,使用umount

然後是vg的啟用,vgchange

和最後的調整檔案系統大小,使用lvm vgchange 和 e2fsck,具體看截圖


這個時候,再shutdown -r系統,就OK了,但是啟動系統之後出現以下問題:


是因為linux系統啟動的時候讀的/etc/fstab的配置檔案內容沒有變,但是我們調整了磁碟的部署,解決方法如下:

在以上介面輸入root使用者的密碼,進行維護:


發現沒有掛載/boot分割槽,使用vim /etc/fstab檢視配置檔案內容


把 LABEL=/boot的分割槽型別由ext4修改為ext3,並把/dev/sdb1這段註釋掉,如下

 

儲存退出,重啟,之後就OK了

調整之後的分割槽情況如下:

 

相關推薦

linux增加/根目錄磁碟空間基於LVM)

linux增加/根目錄的磁碟空間(基於LVM) 問題引出:          在測試過程中替換so檔案,報磁碟空間不足的錯誤 [[email protected] ~]# df -h Filesystem            Size  Used Avail

VMware擴充套件Linux根目錄磁碟空間Centos版本)

1、Centos 關機,選擇編輯虛擬機器設定,硬碟,在實用工具那裡選擇“擴充套件”,指定你需要的儲存大小 2、啟動客戶機作業系統Centos,檢視磁碟情況 輸入指令 fdisk -l 顯示結果如下 Disk /dev/loop0: 107.4 GB, 107374182400 bytes 255 h

VMware-Linux(RedHat 6.7)增加資料庫使用空間Linux&Linux LVM

  資料庫裝著裝著發現根目錄空間不夠了: 好在是虛擬機器,可以彈性增加虛擬磁碟。所以增加一塊新的分割槽掛載/u01專門用來裝資料庫。 1.VMware workstation上增加磁碟 2.重啟,讓系統識別新加進來的硬碟 或者,如果不想重啟,就按如下操作: 33個匯流排全

VBox:增加虛擬磁碟空間上限虛擬系統為Linux

執行以下命令指定vdi虛擬磁碟空間新上限(此步驟需要在使用vdi磁碟檔案的虛擬機器關閉狀態下執行,單位MB): C:\Program Files\Oracle\VirtualBox>vboxmanage modifyhd D:/vm/spark/spark.vdi --resize

Centos7擴充套件磁碟空間LVM管理)

1. 檢視磁碟情況 fdisk -l /dev/sda Disk /dev/sda: 536.9 GB, 536870912000 bytes, 1048576000 sectors Units = sectors of 1 * 512 = 512 bytes Sector

Linux系統擴容根目錄磁碟空間的操作方法

一、使用背景 Linux根目錄磁碟空間不夠用了,當修改了虛擬機器模版增加磁碟大小或者插入了一塊新硬碟,但是發現系統裡的大小還是沒改變。 產生的原因是沒有給磁碟格式化,沒有增加分割槽。 二、操作方法 1.檢視磁碟空間大小,使用df -h 命令,發現掛載根目錄節點的/dev/mapper/vg_

如何增加VMWare虛擬機器的磁碟空間磁碟擴充套件)

1.擴充套件硬碟空間 這一部分很簡單,而且網上的教程已經很多了,我就隨便放了一篇,可能不同的虛擬機器版本操作稍有不同,不過大同小異 一.在虛擬機器關機狀態下點選磁碟如圖: 二.在彈出視窗點選擴充套件如圖: 三.這裡很重要選擇磁碟大小是擴充套件後的磁碟總大小 四.點選

解決Linux下pcieport 0000:00:1c.5問題導致的系統根目錄/磁碟空間不足

最近剛換了筆記本,拿到本後在win10基礎裝上Ubuntu 16.04雙系統,有個問題是每次關機都會報一堆pcie問題,並且經常沒聲音,聲音問題通過上一篇文章暫時解決,然後就沒在意了,可是幾天後出現系統盤根目錄磁碟空間不夠的提醒,於是用磁碟空間分析工具檢視,/var/log/下kern.log 和syslog

linux環境下根目錄磁碟空間滿導致資料庫無法啟動的問題的解決

1、登陸資料庫時,把磁碟空間不足,無法登陸 [[email protected]flash_recovery_area]$sqlplus/assysdba SQL*Plus: Release10.2.0.1.0-Productionon 星期五 11月 2817:

如何增加VMWare虛擬機器的磁碟空間兩種方法:增加磁碟方式和增加分割槽方式)

首先是通過增加磁碟的方式:最近需要在虛擬機器裡面實際操作些東西,需要至少兩個盤,一個系統盤,一個普通盤,結果發現安裝完虛擬機器後預設只有一個C盤,本來還想打算採用工具無損分割槽從C盤分出來一些,後來發現不行, 太麻煩不說,而且不符合虛擬機器的自由玩精神,後來發現原來可以從虛擬

擼代碼--linux進程通信基於共享內存)

-- log pac 字符指針 clas fcn eno csdn printf 1.實現親緣關系進程的通信,父寫子讀 思路分析:1)首先我們須要創建一個共享內存。 2)父子進程的創建要用到fork函數。fork函數創建後,兩

『中級篇』 Linux網絡命名空間25)

star while 命名空間 tps 成對 mes tle pre 操作 >原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!>原文鏈接地址:『中級篇』 Linux網絡命名空間(25) docker底層技術,非常重要的關於namespace,netwo

Linux中檢視磁碟空間使用情況命令df與du的區別

1、兩者區別  du,disk usage of each file,是通過搜尋檔案來計算每個檔案的大小然後累加,du能看到的檔案只是一些當前存在的,沒有被刪除的。他計算的大小就是當前他認為存在的所有檔案大小的累加和。 df,disk free,通過檔案系統來快速獲取空間大小的資訊,當我們

VirtualBox下Linux(centos)擴充套件磁碟空間

        最近在Linux裡做檔案合併,做分詞,磁碟空間不夠,把擴充套件磁碟空間方法記錄一下。         1.在VirtualBox安裝路徑下(例如C:\Program Files\Oracle\

解惑—Linux中的地址空間一)

任意一個時刻,在一個CPU上只有一個程序在執行。所以對於此CPU來講,在這一時刻,整個系統只存在一個4GB的虛擬地址空間,這個虛擬地址空間是面向此程序的。當程序發生切換的時候,虛擬地址空間也隨著切換。由此可以看出,每個程序都有自己的虛擬地址空間,只有此程序執行的時候,其虛擬地址空間才被執行它的CPU所知。在其

linux(centos7) 檢視磁碟空間大小

距離上一個問題 centos7 上的elasticsearch插入資料失敗,死活插入不了資料的問題,後面經猜想可能是伺服器上磁碟滿了,這不又得記一下這個命令,上次貌似已經查過一次了,未做筆記,現在再記

linux常用命令—— 磁碟管理十一)

1、cd cd(change directory) 功能說明:切換目錄。 語  法:cd [目的目錄] 補充說明:cd指令可讓使用者在不同的目錄間切換,但該使用者必須擁有足夠的許可權進入目的目錄。 2、df df(disk free) 功能說明:

VMware虛擬機Linux增加磁盤空間的擴容操作

需要 結合 2.4 target 保持 .aspx 文件 lin fstab 轉載自點擊打開鏈接 用VMwareware虛擬機安裝的Red Hat Enterprise Linux系統剩余空間不足,造成軟件無法正常安裝。如果重新裝一遍系統就需要重新配置好開發環境和軟件的

如何在Exadata計算節點擴充套件磁碟空間驅動)(文件 ID 1582139.1)

適用版本: Exadata X2-2  Exadata X3-2   目的: 在Exadata計算節點擴充套件磁碟空間(驅動) 在Exadata升級後或者增加新的空間到/u01 或者建立新的檔案系統 /u01 詳細: 檢查物理卷的大小 [[email prot

十三)linux檔案系統詳解基於ext2檔案系統)

  我們知道,一個磁碟可以劃分成多個分割槽,每個分割槽必須先用格式化工具(例如某種mkfs命令)格式化成某種格式的檔案系統,然後才能儲存檔案,格式化的過程會在磁碟上寫一些管理儲存佈局的資訊。下圖是一個磁碟分割槽格式化成ext2檔案系統後的儲存佈局: