UNIX系统磁盘空间升级全攻略
在UNIX系统的使用过程中,磁盘空间的升级是一项常见且重要的任务。无论是添加新磁盘,还是利用逻辑卷管理器(LVM)进行磁盘管理,都需要遵循特定的步骤和方法。下面将详细介绍在不同UNIX系统中添加磁盘以及使用LVM的具体操作。
1. 添加磁盘
添加磁盘并非简单地连接磁盘,而是需要完成一系列步骤,主要包括:
- 对磁盘进行分区,准备一个或多个独立的磁盘分区。
- 创建文件系统,使磁盘分区可用于数据存储。
- 挂载已创建的文件系统,使其可用于数据访问。
- 如果使用逻辑卷管理器(LVM),在创建文件系统之前还需要额外的步骤来创建逻辑卷。
1.1 Solaris平台添加新磁盘
在Solaris 2.x(以及早期的Sun Microsystems UNIX版本SunOS 4.1.x)中,可使用 format 磁盘实用程序对磁盘进行分区。具体操作步骤如下:
1. 系统重启以检测新磁盘 :由于Solaris不会每次启动时都检查新硬件,因此需要使用 -r 选项重启系统来检测新磁盘。可以使用以下命令:
$ reboot -- -r
或者
$ halt
OK > boot -r
在 OK> 提示符下,建议先检查磁盘是否正确连接:
OK > probe-scsi
然后再启动系统:
OK > boot -r
- 磁盘分区 :系统识别新磁盘后,会显示
FORMAT MENU,选择partition命令进行分区:
format> partition
进入 PARTITION MENU 后,选择要定义的分区(通过相应的字母),并设置起始柱面和块数:
partition> x
# select the partition to be defined
(by a corresponding letter)
partition x − starting cyl 0, # blocks 0(0/0/0)
Enter new starting cyl [0]: 0
Enter new # blocks [ 0, 0 /0 /0 ]:
XXXX
partition> y
# repeat for all partitions to be defined
完成分区定义后,返回 FORMAT MENU 并退出 format 实用程序:
partition> quit
FORMAT MENU:
quit
format> quit
- 创建文件系统 :使用
newfs命令在新分区中创建文件系统,假设使用默认的文件系统参数:
$ newfs -v /dev/rdsk/c#d#t#s# c#d#t#s# identifies the partition
- 挂载文件系统 :首先创建用于挂载文件系统的目录,然后使用
mount命令挂载文件系统:
$ mkdir /new-mount-point
$ mount /dev/dsk/c#d#t#s# /new-mount-point
- 检查磁盘 :完成上述步骤后,建议使用
df命令检查磁盘,确保操作正确。 - 自动挂载设置 :为了确保系统启动时自动挂载文件系统,需要修改文件系统配置文件
/etc/vfstab,可以手动编辑或使用mount -p命令。
1.2 SunOS平台添加新磁盘
SunOS 4.1.x的操作步骤与Solaris 2.x基本相同,但有一些小差异。SunOS不识别 -r 启动选项,它会在每次启动时检查新连接的硬件,这使得操作更简单。具体步骤如下:
1. 磁盘分区和创建文件系统 :使用与Solaris相同的 format 实用程序和分区方案,只是在创建文件系统时,特殊设备文件的指定有所不同:
$ newfs -v /dev/rsdxx # xx identifies the partition
- 挂载文件系统 :创建挂载目录并挂载文件系统:
$ mkdir /new-mount-point
$ mount /dev/sdxx /new-mount-point
- 修改配置文件 :挂载完成后,需要修改文件系统配置文件
/etc/fstab,其条目格式与Solaris平台略有不同。
1.3 HP - UX平台添加新磁盘
自HP - UX 9.04发布以来,LVM成为HP - UX安装的标准部分。下面将使用可用的UNIX命令进行磁盘升级,并涉及一些“旧”的HP - UX问题,如磁盘描述文件 /etc/disktab 。
1. 物理连接和设备文件检查 :对于新的SCSI磁盘,要特别注意SCSI总线终止和选择合适的SCSI地址。物理连接磁盘并在系统启动时让系统识别其存在后,建议检查所需的特殊设备文件:
$ ls -l /dev/dsk
$ ls -l /dev/rdsk
如果特殊设备文件不存在,需要使用 mknod 命令创建。
2. 磁盘分区和文件系统创建 :可以使用 mkfs 命令同时进行磁盘分区和文件系统创建,假设SCSI - ID = 5:
$ mkfs /dev/rdsk/c201d5s0 s0 ns nt b0 f0 ncpg minfree rps nbpi
其中各参数含义如下:
| 参数 | 含义 |
| ---- | ---- |
| s0 | 分区“扇区”的大小(KB),间接决定交换分区大小 |
| ns | 每磁道的扇区数 |
| nt | 每柱面的磁道数 |
| b0 | 块大小(字节) |
| f0 | 片段大小(字节) |
| ncpg | 每组的柱面数(默认16) |
| minfree | 允许的最小磁盘空闲空间百分比(默认10%) |
| rps | 磁盘每秒转数 |
| npbi | 每个inode的用户文件空间数(默认2 KB/inode) |
更简单的方法是使用 newfs 命令,它会查看磁盘描述文件 /etc/disktab ,计算适当的参数,然后调用 mkfs 命令:
$ newfs /dev/rdsk/c201d5s0 disk_name
需要注意的是,依赖 /etc/disktab 文件的UNIX版本,需要在文件中为指定的磁盘添加适当的描述条目,否则命令会失败。如果文件中缺少新磁盘型号的条目,需要从供应商的网站获取补丁进行修补,或者手动编辑文件。
3. 挂载文件系统和更新配置文件 :完成磁盘分区和文件系统创建后,需要挂载文件系统,并更新文件系统配置文件(如 /etc/vfstab 、 /etc/fstab 或HP - UX 9.0x中的 /etc/checklist )以添加新条目。例如,在HP - UX 9.0x中,更新前后的 /etc/checklist 文件内容如下:
更新前:
$ cat /etc/checklist
/dev/dsk/c201d6s0 /hfs rw,quota 0 1 0
/dev/dsk/c201d2s0 /cdrom cdfs ro,suid, 0 0 0
/dev/dsk/c201d6s0 ...... swap pri = 0 0 0 0
更新后:
$ cat /etc/checklist
/dev/dsk/c201d6s0 / hfs rw,quota 0 1 0
/dev/dsk/c201d2s0 /cdrom cdfs ro,suid, 0 0 0
/dev/dsk/c201d6s0 ..... swap pri = 0 0 0 0
/dev/dsk/c201d5s0 /disk 2 hfs rw,suid, 0 2 0
/dev/dsk/c201d5s0 ..... swap end,pri = 1 0 0 0
2. 逻辑卷管理器(LVM)案例研究
假设系统包含12个磁盘单元,分布在两个SCSI控制器上,操作系统和逻辑卷管理器安装在根卷/磁盘(12个磁盘中的第一个)。任务是镜像根卷和交换卷,并在其余磁盘中创建新的镜像卷,优先选择RAID0 + 1。下面将分别介绍HP - UX 10.20和Solaris 2.6系统中使用LVM的操作步骤。
2.1 HP - UX平台的LVM操作
LVM是HP - UX 9.04、HP - UX 10.x及未来版本的操作系统发行版的标准部分。假设系统安装时的布局如下:
| 卷 | 卷组 | 挂载目录 | 描述 |
| ---- | ---- | ---- | ---- |
| lvol1 | vg00 | /stand | 内核 |
| lvol2 | vg00 | swap | 交换空间 |
| lvol3 | vg00 | / | 根文件系统 |
镜像根磁盘到第二个磁盘(/dev/dsk/c2t5d0和/dev/rdsk/c2t5d0)的步骤如下 :
1. 创建可引导的物理卷 :
pvcreate -B /dev/rdsk/c2t5d0
- 将物理卷添加到根卷组vg00 :
vgextend /dev/vg00 /dev/dsk/c2t5d0
- 将引导实用程序放入磁盘引导区域 :
mkboot /dev/rdsk/c2t5d0
- 将AUTO文件放入磁盘引导LIF区域 :
mkboot -a "hpux (52.5.0;0)/ stand/vmunix" /dev/rdsk/c2t5d0
- 镜像逻辑卷(包括交换卷) :
lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c2t5d0
lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c2t5d0
- 验证引导信息 :
lvboot -v
在其余十个磁盘上创建新逻辑卷的步骤如下 :
1. 创建物理卷 :
pvcreate /dev/rdsk/c0t1d0
pvcreate /dev/rdsk/c0t2d0
...
pvcreate /dev/rdsk/c1t4d0
pvcreate /dev/rdsk/c1t5d0
- 创建卷组vg01的特殊设备文件 :
mkdir /dev/vg01
chmod 755 /dev/vg01
mknod /dev/vg01/group c 64 0x010000
chmod 640 /dev/vg01/group
- 创建卷组vg01 :
vgcreate /dev/vg01 /dev/dsk/c0t1d0
vgextend /dev/vg01 /dev/dsk/c0t2d0
...
vgextend /dev/vg01 /dev/dsk/c1t4d0
vgextend /dev/vg01 /dev/dsk/c1t5d0
- 检查创建的卷组 :
vgdisplay -v /dev/vg01
- 创建3.8 GB的镜像逻辑卷lvol4 :
- 在第一个可用磁盘上创建1.9 GB的逻辑卷lvol4:
lvcreate -n lvol4 -M n -C y -L 1900 /dev/vg01
- 增加下一个磁盘上逻辑卷的大小:
lvextend -L 3800 /dev/vg01/lvol4 /dev/dsk/c0t2d0
- 镜像到磁盘/dev/dsk/c1t1d0和/dev/dsk/c1t2d0:
lvextend -m 1 /dev/vg01/lvol4 /dev/dsk/c1t1d0 /dev/dsk/c1t2d0
- 检查物理卷布局:
pvdisplay -v /dev/dsk/c0t1d0
pvdisplay -v /dev/dsk/c0t2d0
pvdisplay -v /dev/dsk/c1t1d0
pvdisplay -v /dev/dsk/c1t2d0
- 创建日志式(VxFS)文件系统 :
- 创建VxFS文件系统:
newfs -F vxfs /dev/vg01/rvol4
- 挂载新文件系统:
mkdir /mntvol4
mount /dev/vg01/lvol4 /mntvol4
- 修改`/etc/fstab`文件,添加条目:
/dev/vg01/lvol4 /mntvol4 vxfs delaylog, datainlog,rw,suid 0 2
- 创建4 GB的条带化逻辑卷lvol5 :
- 创建逻辑卷:
lvcreate -n lvol5 -i 6 -I 4 /dev/vg01
- 检查物理卷布局:
pvdisplay -v /dev/dsk/c0t3d0
pvdisplay -v /dev/dsk/c0t4d0
pvdisplay -v /dev/dsk/c0t5d0
pvdisplay -v /dev/dsk/c1t3d0
pvdisplay -v /dev/dsk/c1t4d0
pvdisplay -v /dev/dsk/c1t5d0
- 创建VxFS文件系统:
newfs -F vxfs /dev/vg01/rvol5
- 挂载新文件系统:
mkdir /mntvol5
mount /dev/vg01/lvol5 /mntvol5
- 修改`/etc/fstab`文件,添加条目:
/dev/vg01/lvol5 /mntvol5 vxfs delaylog, datainlog,rw,suid 0 3
2.2 Solaris平台的LVM操作
在Solaris中,VxVM是可选软件,标准操作系统安装使用磁盘分区。假设操作系统安装在两个磁盘分区上:
| 分区 | 挂载目录 | 描述 |
| ---- | ---- | ---- |
| c0t0d0s0 | / | 内核 |
| c0t0d0s1 | swap | 交换空间 |
准备根卷和交换卷的镜像卷的步骤如下 :
1. 封装现有根磁盘和交换磁盘,创建默认磁盘组“rootdg”和根卷及交换卷 :
vxencap -g rootdg -c btd01=c0t0d0
- 初始化并将新磁盘添加到磁盘组“rootdg” :
vxdisksetup -i c1t0d0
vxdg -g rootdg adddisk btd02=c1t0d0
- 镜像根卷和交换卷 :
vxrootmir btd02
vxassist mirror swapvol layout =contig,diskalign btd02
或者
vxassist mirror rootvol layout =contig,diskalign btd02
vxbootsetup $V_opt btd02
vxassist mirror swapvol layout =contig,diskalign btd02
- 修改EEPROM变量,使系统可从备用磁盘启动 :
eeprom use-nvramrc ?=true
eeprom nvramrc ="devalias vx-btd02 hwpath_for_c1t0d0"
eeprom boot-device ="disk vx-btd02"
在其余十个磁盘上创建新的RAID0 + 1卷的步骤如下 :
1. 初始化剩余磁盘 :
vxdisksetup -i c0t1d0
vxdisksetup -i c0t2d0
...
vxdisksetup -i c1t4d0
vxdisksetup -i c1t5d0
- 使用第一个磁盘创建新的磁盘组 :
vxdg init appldg apd01=c0t1d0
- 将其他磁盘添加到组中 :
vxdg -g appldg adddisk apd02=c0t2do
vxdg -g appldg adddisk apd03=c0t3do
...
vxdg -g appldg adddisk apd09=c1t4do
vxdg -g appldg adddisk apd10=c1t5do
- 创建最大大小的条带化卷applvol(RAID0) :
MAX = 'vxassist -g appldg -U fsgen -p maxsize layout= stripe,nolog,nstripe=5 \
stripeunit= 128 apd01 apd02 apd03 apd04 apd05'
vxassist -g appldg -U fsgen make applvol $MAX layout= stripe,nolog,nstripe=5 \
stripeunit= 128 apd01 apd02 apd03 apd04 apd05
- 镜像创建的卷applvol(RAID0),实现RAID 0 + 1 :
vxassist -g appldg mirror applvol layout= stripe apd06 apd07 apd08 apd09 apd10
通过以上详细的步骤和操作说明,你可以在不同的UNIX系统中顺利完成磁盘空间的升级和管理任务。在实际操作过程中,请根据系统的具体情况和需求进行调整。
UNIX系统磁盘空间升级全攻略
3. 操作步骤总结与对比
为了更清晰地展示在不同UNIX系统中添加磁盘和使用LVM的操作差异,下面将以表格形式总结主要步骤:
| 系统平台 | 添加磁盘步骤 | LVM操作步骤 |
|---|---|---|
| Solaris 2.x | 1. 用 -r 选项重启系统检测新磁盘 2. 使用 format 实用程序进行磁盘分区 3. 用 newfs 命令创建文件系统 4. 创建挂载目录并使用 mount 命令挂载文件系统 5. 修改 /etc/vfstab 实现自动挂载 | 1. 封装现有磁盘,创建磁盘组和卷 2. 初始化并添加新磁盘到磁盘组 3. 镜像根卷和交换卷 4. 修改EEPROM变量使系统从备用磁盘启动 5. 在其余磁盘创建RAID0+1卷 |
| SunOS 4.1.x | 1. 系统启动自动检测新硬件 2. 使用 format 实用程序进行磁盘分区 3. 用 newfs 命令创建文件系统(特殊设备文件指定不同) 4. 创建挂载目录并使用 mount 命令挂载文件系统 5. 修改 /etc/fstab 文件 | 与Solaris 2.x操作思路类似,但需注意特殊设备文件指定差异 |
| HP - UX 9.04及以上 | 1. 物理连接磁盘,检查特殊设备文件(必要时创建) 2. 使用 mkfs 或 newfs 命令进行磁盘分区和文件系统创建(需注意 /etc/disktab 文件) 3. 创建挂载目录并使用 mount 命令挂载文件系统 4. 更新配置文件(如 /etc/vfstab 、 /etc/fstab 或 /etc/checklist ) | 1. 创建可引导物理卷,添加到根卷组 2. 镜像逻辑卷,验证引导信息 3. 在其余磁盘创建物理卷和卷组 4. 创建不同类型的逻辑卷(镜像、条带化)并创建文件系统 5. 修改 /etc/fstab 文件 |
4. 操作流程可视化
下面使用mermaid流程图展示在HP - UX平台添加磁盘并使用LVM的整体操作流程:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([开始]):::startend --> B(物理连接磁盘):::process
B --> C{检查特殊设备文件是否存在}:::decision
C -->|是| D(使用mkfs或newfs分区并创建文件系统):::process
C -->|否| E(使用mknod命令创建特殊设备文件):::process
E --> D
D --> F(创建挂载目录):::process
F --> G(使用mount命令挂载文件系统):::process
G --> H(更新配置文件):::process
H --> I{是否使用LVM}:::decision
I -->|是| J(创建可引导物理卷):::process
I -->|否| K([结束]):::startend
J --> L(添加物理卷到根卷组):::process
L --> M(镜像逻辑卷):::process
M --> N(验证引导信息):::process
N --> O(在其余磁盘创建物理卷和卷组):::process
O --> P(创建不同类型逻辑卷):::process
P --> Q(创建文件系统):::process
Q --> R(挂载新文件系统):::process
R --> S(修改/etc/fstab文件):::process
S --> K
5. 常见问题及解决方法
在进行UNIX系统磁盘空间升级和LVM操作过程中,可能会遇到一些常见问题,下面为你提供相应的解决方法:
5.1 文件系统创建失败
- 问题描述 :使用
newfs或mkfs命令创建文件系统时提示错误。 - 可能原因 :磁盘描述文件
/etc/disktab中缺少对应磁盘的描述条目;特殊设备文件不存在或权限不足。 - 解决方法 :检查
/etc/disktab文件,若缺少条目,从供应商网站获取补丁或手动编辑文件;使用ls -l命令检查特殊设备文件权限,必要时使用chmod命令修改权限,若文件不存在,使用mknod命令创建。
5.2 磁盘未被系统识别
- 问题描述 :系统重启后未显示新连接的磁盘。
- 可能原因 :磁盘物理连接不正确;SCSI总线终止问题;系统未正确配置检测新硬件。
- 解决方法 :检查磁盘物理连接,确保数据线和电源线连接牢固;检查SCSI总线终止电阻设置;在Solaris系统中使用
-r选项重启系统,在HP - UX系统中使用ioscan命令检查系统外设。
5.3 LVM操作失败
- 问题描述 :在进行LVM操作(如镜像卷、创建卷组等)时出现错误。
- 可能原因 :磁盘设备文件指定错误;卷组或磁盘组已存在冲突;系统资源不足。
- 解决方法 :仔细检查磁盘设备文件路径和名称,确保与实际情况一致;使用相关命令(如
vgdisplay、vxdg list)检查卷组和磁盘组状态,若存在冲突,进行相应清理;检查系统磁盘空间和内存使用情况,释放不必要的资源。
6. 总结与建议
通过以上对不同UNIX系统中添加磁盘和使用LVM的详细介绍,我们了解到每个系统都有其独特的操作步骤和注意事项。在实际操作过程中,建议你:
- 操作前备份重要数据,避免因操作失误导致数据丢失。
- 仔细阅读系统文档和相关命令的手册页,确保正确理解每个步骤的含义和参数设置。
- 遇到问题时,先查看系统日志文件(如 /var/log/messages ),获取详细的错误信息,再根据错误信息进行排查和解决。
希望这些内容能帮助你顺利完成UNIX系统的磁盘空间升级和管理任务,提高系统的存储性能和可靠性。
UNIX磁盘升级与LVM操作指南
超级会员免费看
70

被折叠的 条评论
为什么被折叠?



