|
本文是假设您已经使用 Linux 一段时间,随着硬件的升级或空间不足,必须要升级 Linux 系统,抑或是想提供更多的网络服务给用户,因应这个需求而编写的。
一、调整虚拟内存:
在 Linux 上是使用 swap 技术将硬盘空间挪用为虚拟内存,当服务器建置完成使用一段日子以后,有可能会扩充硬件,其中又以扩充主存储器来改善执行效能最为普遍,在这种情形下,就需要增加 swap 虚拟内存的容量。
由于 swap 跟 LVM 机制一样能将多块磁盘分割区虚拟成一块,因此我们并不需要将旧的 swap 扇区先移除,或是直接修改 swap 扇区大小,而是可以采用追加 swap 扇区的方式来配置。做法如下:
mkswap /dev/hdx2(将新扇区格式化为 swap)
swapon /dev/hdx2(立即启用新的 swap 扇区)
修改 /etc/fstab 加入下面这一行
/dev/hdx2 swap swap defaults 0 0
如果硬盘已经没有剩余空间,而且无法加装新的硬盘,这种情况下,我们没办法变更 swap 扇区来满足需求,但是可以挪用已经挂载的分割区一部分空间,以档案的形式来追加 swap 虚拟内存的容量:
dd if=/dev/zero of=/swapfile bs=1024 count=65536(建立 /swapfile 档案,单位为 KB,所以这是 64MB)
mkswap /swapfile(将该档案空间格式化为 swap)
swapon /swapfile(立即启用新的 swap 档案)
修改 /etc/fstab 加入下面这一行
/swapfile swap swap defaults 0 0
Linux 并没有办法搬移 swap 扇区,如果想要把 swap 作成单一一个扇区,必须先将旧 swap 扇区移除,再加入新的 swap 扇区,如果先加入新扇区,则新旧扇区会联合运作,造成旧扇区无法移除的现象。移除 swap 扇区的方法如下:
swapoff /dev/hdx2(关闭 swap 功能)
修改 /etc/fstab 移除 /dev/hdx2 那一行 二、加载硬盘与档案系统转换:
当硬盘不敷使用时,需要加挂新的硬盘到系统上,加挂硬盘的做法很简单,先使用 fdisk 或 parted 将扇区分割好,接着使用 mkfs 指令来格式化硬盘,最后修改 /etc/fstab 让系统重开机后能自动挂载新的硬盘。fdisk 的使用方法如下:
#> fdisk /dev/hdb(假设要加挂的硬盘,是接在第一条排线的第二个位置)
The number of cylinders for this disk is set to 2498.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): m
Command action
a
b
c
d
m
n
o
p
q
s
t
u
v
w
x toggle a bootable flag
edit bsd disklabel
toggle the dos compatibility flag
delete a partition
list known partition types
print this menu
add a new partition
create a new empty DOS partition table
print the partition table
quit without saving changes
create a new empty Sun disklabel
change a partition's system id
change display/entry units
verify the partition table
write table to disk and exit
extra functionality (experts only)
Command (m for help): |
先用 l 指令列出所有已分割好的扇区,你可以使用 d 指令将不要的扇区删除,或使用 t 指令将扇区的档案系统改为 Linux 用的 82(swap) 或 83(ext2,ext3),假如硬盘是空的尚未分割任何扇区,这时候请用 n 指令建立扇区,所有需要的修改完成后,输入 w 指令将设定储存起来,然后重开机让修改生效,以便进行后续动作。
扇区分割好了以后,必须针对每个不同档案系统将扇区格式化,swap 扇区格式化的方法前面已经提过,而作为一般用途的扇区,建议直接格式化为 ext3:
/sbin/mkfs -t ext3 /dev/hdb1(将空白扇区格式化为 ext3)
ext3 是从 ext2 改良而来,主要是挪用 ext2 一些 inode 拿来做成日志文件(.journal),因此它与 ext2 只有些微不同,两种系统也可以很容易互相转换(转换完仍需自行修改 /etc/fstab 组态):
/sbin/mke2fs /dev/hdb1(将空白扇区格式化为 ext2)
/sbin/tune2fs -j /dev/hdb1 (将 ext2 转为 ext3,转换时顺便建立日志文件)
当新扇区格式化好了之后,就可以将它挂载上来,您可以直接指定要挂载的扇区型态:
/sbin/mount -t ext3 /dev/hdb1 /mount/point(指定挂载 ext3 扇区到 /mount/point 目录)
或先修改 /etc/fstab 然后再挂载,修改 /etc/fstab 的方法是插入下面这一行:
/dev/hdb1 /mount/point ext3 defaults 0 0
接着挂载时不需指定扇区型态及装置名称,指令如下:
/sbin/mount /mount/point
已经格式化为 ext3 的扇区,如果要挂载到 6.X版以前的系统上使用,必须将格式改回 ext2,变更方法如下:
/sbin/tune2fs -O ^has_journal /dev/hdb1 (通知 kjournald 关闭日志文件功能)
mount -t ext2 /dev/hdb1 /mount/point(将 ext3 挂载为 ext2)
rm -f .journal(删除日志文件)
将 ext2 转换成 ext3 有许多好处,包括速度快、安全、高可用性、修复省时......等等优点。简单的讲,所谓 journal 就是把文件读写动作逐项纪录下来,当硬盘未正常关机(unclean shutdown)时,不需要检查硬盘(e2fsck)直接可以挂载(mount),如果以 fsck 强制修复硬盘,则直接从日志文件读取需要修复的扇区资料,而不需要整颗硬盘都检查。由于这些优点,我们也建议不要再使用旧的 ext2 格式。
挂载好后,如需进行数据移转,可以使用 cp -Rp 指令,参数 R 表示连子数据夹一起备份,参数 p 表示要保留所有档案权限设定,例如:cp -Rp /home /home1 三、升级磁盘系统:
LVM 逻辑扇区
事实上新版 Linux 由于提供 LVM (Logical Volume Manager)功能,可以将多个扇区组合成一个 VG(Volume Group),然后将一个 VG 挂载成单一一个目录,这样就可以做到扇区合并的效果,省掉转移资料的麻烦,要使用这项功能,首先在安装 Linux 时,必须先将可能会事后扩充的扇区做成 LVM 扇区型态(代号是 8e),如果您在安装时没有启用这项功能想要事后补做,那样可行不通,因为修改扇区型态将会造成所有资料遗失!
如果是新硬盘上的扇区,请用 fdisk 修改好扇区型态后,利用以下指令来做起始化的动作,在底下的例子里,我们会把新硬盘上的三个扇区合并成一个,并在稍后加入第四个扇区以扩充容量(透过这些步骤,可以了解当初 Linux 安装程序帮我们装 LVM 时,到底做了哪些事情):
/sbin/pvcreate /dev/hdb1
/sbin/pvcreate /dev/hdb2
/sbin/pvcreate /dev/hdb3
然后需建立 VG,建立好的 VG 将被视为一个装置名称,事后可以用 /dev/VG_name 来引用它:
/sbin/vgcreate new_home /dev/hdb1 /dev/hdb2 /devhdb3
对于 VG 这种装置来说,仍必须进一步在上面分割逻辑扇区才能使用,我们不妨把 VG 想象成是一个外挂的 SCSI 磁盘阵列,对主机板来说,他被视为单一一颗硬盘(LVM 并不是真正的 RAID 系统,因为它只能实作 RAID0,事实上 2.4.x 版的 kernel 另外还提供 softRAID 功能,在后面说明)。既然它是一种装置,当然无法直接挂载使用,必须先进一步作虚拟分割及格式化的动作, 下面的例子里,我们仅分割单一一个扇区:
/sbin/lvcreate -L 30g new_home(将 new_home 虚拟装置中的 30 GB 空间割成一个虚拟延伸扇区)
使用 lvcreate 指令除了可以分割l逻辑延伸扇区(所谓延伸是指可以动态变大,当然变小也是可以,但应该没有人会这么做),还可以分割一种称为快照的扇区,这可以用来自动备份某块逻辑延伸扇区,而这种备份是 自动进行的,并不需要人力介入管理。
一但逻辑扇区分割好了,依照惯例仍然得先将扇区格式化,一般是格式化成 ext3:
/sbin/mkfs -t ext3 /dev/new_home/lvol1(由于当初分割扇区时未使用 -n 参数来指定名称,因此系统会自动编号)
格式化好的扇区就可以直接挂载使用:
mkdir /home2
mount -t ext3 /dev/new_home/lvol1 /home2
接下来进行文件转移:
cp -Rp /home /home2(将使用者文件从实体扇区拷贝到 lvm 扇区)
以光盘片开机进入 rescue mode
rm -rf /home (将 /home 删除)
mkdir /home (建立挂载点)
mount -t ext3 /dev/new_home/lvol1 /home (重新将 /dev/new_home/lvol1 挂载到 /home)
rmdir /home2(删除挂载点)
紧接着修改 /etc/fstab 来挂载这个新作好的逻辑扇区:
/dev/new_home/lvol1 /home ext3 defaults 0 0
重开机后,系统会尝试挂载该虚拟扇区,如果挂载失败,请在 /etc/rc.d/rc.local 加入以下指令:
vgchange -a y new_home
mount /dev/new_home/lvol1 /home
假如使用一段时间后, /home 的空间不足,这时我们可以动态加入新的实体扇区(以 /dev/hdb4 为例)来扩充空间:
以 fdisk 修改 /dev/hdb4 的扇区类型为 8e
/sbin/pvcreate /dev/hdb4 (逻辑扇区起始化)
/sbin/vgextend new_home /dev/hdb4(将实体扇区加入到虚拟装置上)
/sbin/lvextend -L +10g /dev/new_home/lvol1 /dev/hdb4(从该实体扇区扩充 10GB 空间至逻辑扇区)
完成以上步骤后,现在的 /home 空间容量已经变成 40GB!然而使用 df 指令去查看 inode,却发现空间没有增加,经过测试后发现必须重新mkfs才能使用新的空间,这个缺点让 LVM 有点美中不足。 [本文共有 2 页,当前是第 1 页] <<上一页 下一页>>
OVER
|