閱讀300 返回首頁    go 阿裏雲 go 技術社區[雲棲]


阿裏雲服務器Centos 7數據盤擴充

唉,新手不懂linux,但是為了網站想提高一點數據就來學習一下,今天又遇到坑了,在此記錄一下整個過程,希望能幫助更多的人。

在阿裏雲後台擴容成功後會給到一個提示框,上麵寫著可以參考該地址來解決擴容,地址如下:

https://help.aliyun.com/document_detail/25452.html?spm=5176.doc25451.6.174.1ZkRGI

看到這個地址就一頭霧水,服務器上還有2個網站呢,萬一給我一折騰掛了,就功虧一奎了,這時候還是要去做一個備份啊,硬盤有價 數據無價,謹慎操作啊,哈哈哈,在後台做了一個磁盤快照,就準備開始了。

按照步驟已經操作到了第8步了,如下:

  1. 刪除原有分區並新建分區。如果此前未分區,直接格式化使用,請直接跳到第 9 步。
    有些用戶使用 parted 工具來操作分區,但是 parted 和 fdisk 不能交叉使用的,否則會導致分區的起始扇區不一致的問題。因此刪除原有分區建新分區的時候,請按照如下步驟進行操作:
    1). 使用 fdisk -l 羅列一下分區信息並記錄一下即將擴容磁盤的最終容量、起始扇區位置。
    2). 使用 fdisk 指令,輸入 d 來刪除原有的分區。
    3). 依次輸入 np1 來新建分區。
    4). 選擇 sector 時,在此示例中直接回車選擇默認值,您也可以按照自己的需求來選擇。為了保證數據的一致性,First sector 建議和之前的分區保持一致。
    下麵是使用 fdisk的示例:
   
root@iZ94lw423m7Z:~# fdisk /dev/xvdb
Command (m for help): d
Selected partition 1
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-146800639, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-146800639, default 146800639):
Using default value 146800639
Command (m for help): wq
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

到這裏的時候我就蒙了,這咋操作啊,大概看了一下命令的作用,是做了一個先刪除以前的分區再創建一個新的分區,然後會把整個擴容的磁盤容量添加上去,這時我就按照做了,這一次貌似好成功的樣子。

看到了與命令的結果差不多,我的結果如下:

QQ%E5%9B%BE%E7%89%8720160522224938.png

可以看到下麵

多了一個

Partittion 1 of type Linux and of size 25 Gib is set

大概應該是說份了一個Linux類型的分區,我也不懂怎麼與上麵的不一致,接著往下就到了如下圖所示的提示:

1111.png

 

當時是真的看不懂啊,我也就默默的跳過了這裏,進入了第九步,

”檢查文件係統,並變更文件係統大小。 
使用 e2fsck 的時候由於係統需要檢查並訂正文件係統元數據,所以速度較慢、耗時較長,請耐心等待。 
使用 e2fsck 和 resize2fs 指令,正確操作情況下,不會造成原有數據丟失的。“

   e2fsck -f /dev/xvdb1
   resize2fs /dev/xvdb1
   這時候我輸入了下麵一步,這裏的結果忘記截圖了,反正與上麵的不一致,最後我就再輸入
  mount /dev/xvdb1 /mnt/dev1
  貌似好像成功了
  最後一步我來查看一下分區有木有擴容好,輸入:df -TH,結果心寒如下
 
 我擦,怎麼還是15G啊,這時候我該怎麼辦,我又去後台恢複快照,再來一次,這樣重複了3次,還是不行,
蛋疼啊,突然想起了有售後,我就去提交了一個工單,在這裏工單省略幾千字,說起來都是淚啊,半天給
一個回複,好不容給到一個回複,又給來一個教程地址,又是說照著這個搞等等等,以後再也不找售後了。
   最後沒辦法還是得自己來搞,谘詢了一下以前認識的一個linux開發小夥伴,我描述了一下我的情況後,
他給我推薦了一種叫LVM擴容,聽起來好高大上啊,可是我不懂搞,時間又比較急,最後我還是選擇阿裏雲提
供的這種教程,讓他指導一下我,我當時就給他看了這個圖:

問我以前開始的時候用的什麼分的區,我都忘記了,給我說了一下這兩個的區別等,然後我決定去試試,
就按照這個套路來再來一波,遇到了使用e2fsck命令時提示:Bad magic number in super-block, 結果
還是一樣,沒成功啊。。。。。
  到底要怎麼搞啊,心都碎了,最後我看到了一篇文章有了一點啟示:
https://bbs.aliyun.com/read/272957.html?pos=4
最後又恢複一次來操作,結果還是不行,這到底發生了什麼,擴容這麼難嗎?我擦。。
繼續找資料終於找到了一篇貌似不錯的文章了,一步一步的操作沒想到成功啦。看啊可能效果圖:

在這裏我記錄一下:
  1. 操作前,首先登陸官方後台升級主機,增加需要的硬盤大小。擴容前用df -vh查看掛載狀態是:從下麵的圖中可以看到,目前在用的掛載盤已經用完了,那麼剛才在主機商後台購買的10G在哪呢?可以用fdisk -l來查看所有硬盤,有二個盤,結合上麵掛載目錄可以看出,vda分區為vda1,即30G的係統盤,掛載到/,vdb分區為vdb1,掛載到/home。顯然目前我們掛載到/home目錄的隻有20G,那麼新買的10G就是在盤/dev/vdb了。所以,下麵就要對這個vdb重新分區與掛載。

    1463931226-6403-572c578b726a8c13632762d0

    1463931226-6207-91231d037bc2ab345982b3b7

  2. 先結束各項服務:[root@west5066 ~]#service httpd stop     //使用nginx的結束nginxd[root@west5066 ~]#service wdapache stop

    [root@west5066 ~]#service mysqld stop

    [root@west5066 ~]#fuser -m /home -k    //以上命令是停止服務 fuser -m /.. -k 殺掉所有訪問此目錄的進程

    [root@west5066 ~]#umount /home       //取消原有/home掛載

    [root@west5066 ~]#parted /dev/vdb    //輸入parted /dev/vdb 這裏是磁盤名,表示選擇這個盤來作分區操作,如果沒有這個程序執行yum install parted 安裝!

    GNU Parted 2.1

    使用 /dev/sdb

    Welcome to GNU Parted! Type 'help' to view a list of commands.

    (parted) print  //是顯示當前vdb分區的情況

    Model: Virtio Block Device (virtblk)

    Disk /dev/sdb: 20GB

    Sector size (logical/physical): 512B/512B

    Partition Table: msdos

    Number  Start    End    Size   Type     File system  標誌

    1          1049kB  9.9G  9.9G  primary  ext4          //記下Start 的大小,下麵要用到。

    1463931226-3654-b051d1425d9e307adab44aed

  3. (parted) rm 1    // 刪除當前分區,不是說刪除原分區下的20G文件。(parted) mkpart   //建立分區分區類型?  primary/主分區/extended/擴展分區? p   //選擇是主分區還是擴展分區

    文件係統類型?  [ext2]?       //直接回車

    起始點? 1049kB             //剛才記錄的Start大小

    結束點? 100%             //把此盤全部空間用在這個分區

    (parted) quit                //退出分區命令parted

    信息: You may need to update /etc/fstab.

    1463931227-2590-6b60648b5dc2edf81a4c500f

  4. [root@west5066 ~]# resize2fs -f /dev/vdb1   //輸入resize2fs -f /dev/sdb1,這裏是分區名,用以不刪除原數據重定義分區的大小,如果提示fsck(修複),請執行後再操作resize2fsresize2fs 1.39 (29-May-2006)Filesystem at /dev/sdb1 is mounted on /home; on-line resizing required

    Performing an on-line resize of /dev/sdb1 to 5242852 (4k) blocks.

    The filesystem on /dev/sdb1 is now 5242852 blocks long.

    1463931227-6342-d21bfd4fc153ab6eddc450da

  5. [root@west5066 ~]#mount -a    //重新掛載此分區[root@west5066 ~]# df -vh      //再用df –lh 查詢下home分區大小,可以看到vdb1已經增加到30G了,原來是20G。最後啟動各項服務即可。1463931227-7447-70cfe5a344bbfedcd100baa1

    END

AAffA0nNPuCLAAAAAElFTkSuQmCC注意事項

  • 刪除分區後一定要先建立分區再保存,刪除後點了保存會導致數據丟失!
  • 該操作有風險,為避免誤操作導致數據丟失,操作前請對您的重要數據進行備份!


轉自:https://www.lovecoder.cn/391.html

最後更新:2017-04-01 17:04:39

  上一篇:go 3月30日雲棲精選夜讀:Scott 帶你掌握 Nodejs 打通全棧
  下一篇:go 【猜代碼贏大獎】又是一年四月一,代碼整人別客氣