给阿里云服务器新增云磁盘

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/131/ ]

创业初期,公司选配阿里云服务器配置的时候,由于考虑不周,只配了50G的数据盘.就在昨天,由于磁盘爆满,导致网站用户无法上传图片,相关操作也就无法进行.事态紧急,只好把无关紧要的备份文件删除,先腾出点空间.接下来要做的,就是再跟阿里云买一块云磁盘.

创业初期,公司选配阿里云服务器配置的时候,由于考虑不周,只配了50G的数据盘。就在昨天,由于磁盘爆满,导致网站用户无法上传图片,相关操作也就无法进行。事态紧急,只好把无关紧要的备份文件删除,先腾出点空间。接下来要做的,就是再跟阿里云买一块云磁盘。

都知道,阿里云的云磁盘IO性能不怎么样,考虑到这一点,就先新增一块300G的云磁盘过度,以后有时间了再考虑把数据往别的地方迁移。

先简单说明一下操作思路,假设用户上传的数据存放路径为/web/uploads:

1)新增阿里云磁盘

2)mount新磁盘到/mnt上

3)同步/web/uploads的数据到/mnt

4)umount新磁盘

5)重命名/web/uploads为/web/uploads_bak

6)新建/web/uploads

7)mount新磁盘到/web/uploads上,并修改/etc/fstab

8)最后再同步/web/uploads_bak的数据到/web/uploads

5)6)7)可以写成脚本的形式进行操作

1)在阿里云控制台新增了云磁盘,等几分钟,就可以在通过如下命令查看服务器识别到的硬盘:

[root@AY /]# fdisk -l

Disk /dev/xvda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00073f45

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1        2611    20970496   83  Linux

Disk /dev/xvdb: 53.7 GB, 53687091200 bytes
224 heads, 56 sectors/track, 8359 cylinders
Units = cylinders of 12544 * 512 = 6422528 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdb1               1        8359    52427620   83  Linux

Disk /dev/xvdc: 322.1 GB, 322122547200 bytes
255 heads, 63 sectors/track, 39162 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

可以看到,新增的磁盘为/dev/xvdc,现在需要给它进行分区操作。

[root@AY /]# fdisk /dev/xvdc 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x882a692b.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):

输入m,fdisk工具会提示相关参数的作用说明,这里我们主要是新建分区,所以输入n

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)

e:拓展分区

p:主分区

因为这块新增的硬盘,全部用来存储数据,创建一个分区就可以了,所以输入p,并只选择创建1个主分区,接着可以一路回车键,使用默认值。

p
Partition number (1-4): 1
First cylinder (1-39162, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-39162, default 39162): 
Using default value 39162

最后记得输入w保存。

然后就是格式化新建的磁盘分区。这里格式化新分区的文件格式为ext4,300G的阿里云磁盘大约需要4分钟,inodes占用大约200MB的空间。

[root@AY /]# mkfs.ext4 /dev/xvdc1 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
19660800 inodes, 78642183 blocks
3932109 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
2400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

2)挂载磁盘到/mnt

mount /dev/xvdc1 /mnt       #挂载新硬盘到/mnt

3)接下来,就开始同步几十G的数据到新增的硬盘,由于要同步的数据比较多,所以采用rsync工具来保证数据的一致性。

rsync /web/uploads /mnt -aP #同步数据
...
sent 11272285 bytes  received 893 bytes  2505150.67 bytes/sec
total size is 27816370196  speedup is 2467.48

-a,--archive  归档模式,相当于-rlptgoD
-r,--recursive 对子目录以递归模式处理  
-l,--links 链接文件,意思是拷贝链接文件
-p,--perms 表示保持文件原有权限
-t,--times 保持文件原有时间
-g,--group 保持文件原有用户组
-o,--owner 保持文件原有属主
-D,--devices 保持设备文件信息

注意,不要使用如下方式进行同步操作:

cd /mnt
rsync /web/uploads . -aP #同步数据

这很可能是rsync的BUG,它会把数据同步到没挂载新硬盘前的/mnt上,换句话说,数据会占用根目录所在分区的磁盘空间。

4)同步完毕后卸载磁盘

umount /mnt

5)重命名/web/uploads为/web/uploads_bak

mv /web/uploads /web/uploads_bak

6)新建文件夹/web/uploads

mkdir /web/uploads

7)挂载新磁盘到/web/uploads上,并修改/etc/fstab

mount /dev/xvdc1 /web/uploads
vi /etc/fstab
#新增加一行,让系统重新启动时自动挂载该磁盘
/dev/xvdc1 /web/uploads ext4 defaults 0 0

8)最后再同步一遍,保证数据的一致性。

rsync /web/uploads_bak /web/uploads -aP #同步数据

评论:

  1. 暂无评论...
  2. 我来说两句:

      切换  

    磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

      切换  

    磨途歌随机验证码