阿裏雲服務器Centos 7數據盤擴充
唉,新手不懂linux,但是為了網站想提高一點數據就來學習一下,今天又遇到坑了,在此記錄一下整個過程,希望能幫助更多的人。
在阿裏雲後台擴容成功後會給到一個提示框,上麵寫著可以參考該地址來解決擴容,地址如下:
https://help.aliyun.com/document_detail/25452.html?spm=5176.doc25451.6.174.1ZkRGI
看到這個地址就一頭霧水,服務器上還有2個網站呢,萬一給我一折騰掛了,就功虧一奎了,這時候還是要去做一個備份啊,硬盤有價 數據無價,謹慎操作啊,哈哈哈,在後台做了一個磁盤快照,就準備開始了。
按照步驟已經操作到了第8步了,如下:
- 刪除原有分區並新建分區。如果此前未分區,直接格式化使用,請直接跳到第 9 步。
有些用戶使用 parted 工具來操作分區,但是 parted 和 fdisk 不能交叉使用的,否則會導致分區的起始扇區不一致的問題。因此刪除原有分區建新分區的時候,請按照如下步驟進行操作:
1). 使用 fdisk -l 羅列一下分區信息並記錄一下即將擴容磁盤的最終容量、起始扇區位置。
2). 使用 fdisk 指令,輸入 d 來刪除原有的分區。
3). 依次輸入 n,p,1 來新建分區。
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.
到這裏的時候我就蒙了,這咋操作啊,大概看了一下命令的作用,是做了一個先刪除以前的分區再創建一個新的分區,然後會把整個擴容的磁盤容量添加上去,這時我就按照做了,這一次貌似好成功的樣子。
看到了與命令的結果差不多,我的結果如下:
可以看到下麵
多了一個
Partittion 1 of type Linux and of size 25 Gib is set
大概應該是說份了一個Linux類型的分區,我也不懂怎麼與上麵的不一致,接著往下就到了如下圖所示的提示:
當時是真的看不懂啊,我也就默默的跳過了這裏,進入了第九步,
”檢查文件係統,並變更文件係統大小。
使用 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
最後又恢複一次來操作,結果還是不行,這到底發生了什麼,擴容這麼難嗎?我擦。。
繼續找資料終於找到了一篇貌似不錯的文章了,一步一步的操作沒想到成功啦。看啊可能效果圖:
在這裏我記錄一下:
- 操作前,首先登陸官方後台升級主機,增加需要的硬盤大小。擴容前用df -vh查看掛載狀態是:從下麵的圖中可以看到,目前在用的掛載盤已經用完了,那麼剛才在主機商後台購買的10G在哪呢?可以用fdisk -l來查看所有硬盤,有二個盤,結合上麵掛載目錄可以看出,vda分區為vda1,即30G的係統盤,掛載到/,vdb分區為vdb1,掛載到/home。顯然目前我們掛載到/home目錄的隻有20G,那麼新買的10G就是在盤/dev/vdb了。所以,下麵就要對這個vdb重新分區與掛載。
- 先結束各項服務:[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 的大小,下麵要用到。
- (parted) rm 1 // 刪除當前分區,不是說刪除原分區下的20G文件。(parted) mkpart //建立分區分區類型? primary/主分區/extended/擴展分區? p //選擇是主分區還是擴展分區
文件係統類型? [ext2]? //直接回車
起始點? 1049kB //剛才記錄的Start大小
結束點? 100% //把此盤全部空間用在這個分區
(parted) quit //退出分區命令parted
信息: You may need to update /etc/fstab.
- [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.
- [root@west5066 ~]#mount -a //重新掛載此分區[root@west5066 ~]# df -vh //再用df –lh 查詢下home分區大小,可以看到vdb1已經增加到30G了,原來是20G。最後啟動各項服務即可。
END
注意事項
- 刪除分區後一定要先建立分區再保存,刪除後點了保存會導致數據丟失!
- 該操作有風險,為避免誤操作導致數據丟失,操作前請對您的重要數據進行備份!
最後更新:2017-04-01 17:04:39