LVM 实战

2006-07-21 | 17:47分类:Linux | 标签: | 2,976 Views

备份服务器的硬盘空间不够了,添加硬盘扩容,为了今后再扩容的方便,使用 LVM 。
 
加挂一块硬盘,并用 fdisk 进行如下分区:
# fdisk -l /dev/sdb
Device Boot         Start          End          Blocks     Id     System
/dev/sdb1                 1        2433      19543041    8e  Linux LVM
/dev/sdb2            2434        4866     19543072+   8e  Linux LVM
/dev/sdb3            4867        7299     19543072+   8e  Linux LVM
/dev/sdb4            7300        9729      19518975    8e  Linux LVM
 
习惯性的分成了四个区,其实只分一个区就行。
 
初始化 LVM :
# vgscan
 
建立 PV :
# pvcreate /dev/sdb1
# pvcreate /dev/sdb2
# pvcreate /dev/sdb3
# pvcreate /dev/sdb4
查看 PV:
# pvdisplay /dev/sdb1
 
创建 VG :
# vgcreate vga /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
查看 VG :
# vgdisplay vga
 
创建 LV :
# lvcreate -l 28899 -n vga1 vga
或者,
# lvcreate -L 112890M -n vga1 vga
-l 以 PE 为单位划分大小,-L 以 MB 为单位划分大小。
查看 LV :
# lvdisplay /dev/vga/vga1
 
格式化 LV :
# mke2fs -j -L /backup /dev/vga/vga1
 
挂载:
加入 /etc/fstab ,
LABEL=/backup           /backup                 ext3    defaults        1 2
# mount -a
 
把原来用来备份的分区 (/dev/sda5) 上的数据复制到 /backup 。
 
顺便试了试 LV 改名:
# umount /backup
# lvrename /dev/vga/vga1 /dev/vga/lv1
# lvdisplay /dev/vga/lv1
# e2label /dev/vga/lv1 /backup
# mount -a
LV 上的数据不会受到影响。
 
最后,把 /dev/sda5 也加入 VG ,以扩大容量。
# fdisk /dev/sda
把 /dev/sda5 的 Id 改为 8e ,再把 /dev/sda5 也做成 PV :
# pvcreate /dev/sda5
扩充 VG :
# vgextend vga /dev/sda5
扩充 LV :
# lvextend -l +4765 /dev/vga/lv1
扩充分区大小:
# ext2online /dev/vga/lv1
从 ext2online 这个命令的名字就可以知道,扩容是不需要 umount 的。

mtop 实时监控 MySQL

2006-07-17 | 11:30分类:MySQL | 标签: | 3,209 Views

Requires the following perl modules:
 
    Module             Available At
    ------------     --------------------------------------------------------
    Curses              http://cpan.linuxforum.net/authors/id/G/GI/GIRAFFED
    DBI                  Distributed as Bundle::DBI: http://www.cpan.org/authors/id/TIMB
    DBD::mysql        http://www.cpan.org/modules/by-module/DBD
    Getopt::Long     (Distributed with Perl 5)
    Net::Domain      Part of libnet: http://www.cpan.org/authors/id/GBARR

# perl -e 'use Curses'
# perl -e 'use DBI'
# perl -e 'use DBD::mysql'
# perl -e 'use Getopt::Long'
# perl -e 'use Net::Domain'
 
没有输出就是模块已经安装了,有错误就是相应的模块没有安装。
可以在上面给出的地址下载相应模块的最新版本。

安装所需的 Perl 模块:
# tar zxvf Curses-x.xx.tar.gz
# cd Curses*
# perl Makefile.PL
# make
# make install
 
yum 仓库里有 perl-DBI ,所以直接 yum 安装,
# yum -y install perl-DBI
 
因为是编译安装的 MySQL ,所以需要把 lib 的路径加入 ld.so.conf ,
# vi /etc/ld.so.conf
/usr/local/mysql/lib/mysql
# ldconfig
 
虽然 yum 仓库里有 perl-DBD-MySQL ,但其依赖 mysql ,所以还是编译安装,
# tar zxvf DBD-mysql-x.xxxx.tar.gz
# cd DBD-mysql*
# perl Makefile.PL --mysql_config=/usr/local/mysql/bin/mysql_config
# make
# make install
 
安装 mtop :
# tar zxvf mtop-0.6.6.tar.gz
# cd mtop-0.6.6
# perl Makefile.PL
# make
# make install
 
添加相应的 MySQL 数据库用户:
# mysql -uroot -pPASSWORD
mysql> GRANT RELOAD,PROCESS,SUPER ON *.* TO 'mtop'@'localhost' IDENTIFIED BY 'mtop';
mysql> FLUSH PRIVILEGES;
mysql> exit
 
运行:
因为自定义了 mysql.sock 的位置,所以需要做个链接 mtop 才能运行,
# ln -s /var/run/mysqld/mysql.sock /tmp/mysql.sock
 
# mtop --dbuser=mtop --password=mtop
 
参考资料:http://mtop.sourceforge.net/

CentOS 升级到 2.6 内核 CPU 温度过高的问题

2006-07-14 | 14:16分类:Redhat/CentOS | 标签: | 3,144 Views

CentOS 升级到 2.6 的内核后,总是出现:
CPU0: Temperature above threshold
CPU0: Running in modulated clock mode
 
确认没有超频,检查了 CPU 风扇,散热没有问题,CPU 的温度较之使用 2.4 内核的时候也没有升高。
可是,只要编译东西就会说 CPU 温度过高,CPU 占用率稍微高一些也会频繁出现上面的两行警告,让人好生心烦。
 
查询资料后得知是 2.6 内核的相应阀值过低造成了这种状况。
 
vi /etc/syslog.conf
注释掉 *.emerg 这一行
/etc/init.d/syslog restart
 
就不会出现 CPU 温度过高的警告了。

内网用户通过 Linux 网关服务器向外网发布 Web 服务

2006-07-11 | 14:36分类:Network | 标签: | 2,692 Views

环境:ADSL 动态 IP ,内网用户通过 Linux 网关服务器 NAT 上网。
 
1. 先到 3322.org 免费注册一个动态的二级域名。
 
2. 网关服务器上
# vi /etc/ppp/ip-up
在最后加入:
/usr/local/network/setup.sh
lynx -mime_header -auth=USERNAME:PASSWORD "http://www.3322.org/dyndns/update?system=dyndns&hostname=HOST.3322.org"
 
第一个是执行 iptables 做 NAT 以及 TC 流量控制等脚本的集合。
第二个是在拨号成功时向 3322.org 提交新的 IP 地址。
 
3. 安装 Apache ,configure 的时候加上 --enable-proxy=shared
在虚拟主机配置中加上:
RewriteEngine on
RewriteRule ^/(.*)$ http://192.168.0.254/$1 [P,L]
 
注:如果有注册静态域名,做 CNAME 到 HOST.3322.org 就可以实现 IP 的自动“更新”了。
    可以配置多个虚拟主机为多部内网机器提供发布到外网的 Web 服务。

Linux 使用 RAMDisk 提高系统性能

2006-06-10 | 15:08分类:Linux | 标签: | 2,813 Views

最初,使用 RAMDisk 是通过在 ram 设备上建立文件系统并挂载来实现的。
# mkdir /mnt/ramfs
然后把下面的指令加入 /etc/rc.local 。
/sbin/mkfs -t ext3 /dev/ram0
/bin/mount /dev/ram0 /mnt/ramfs
/bin/chmod -R 1777 /mnt/ramfs
RAMDisk 的默认大小是 8M (可以在编译内核时设定),如果要增加 RAMDisk 的大小,需要在系统启动时给内核传参数,在 grub.conf 的 kernel 行末加上 ramdisk_size=131072 ,这里不能是 128M 这样的写法,应该是 128*1024 。
 
使用 ram 设备的灵活性不够,不方便。之后就使用 shm 了。
以 /tmp 绑定到 shm 为例,可以把下面的指令加入 /etc/rc.local 。
mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp
 
使用 shm 要稍微方便些了,不过还是不够,更方便的办法是通过 mount 使用 tmpfs 文件系统。
# mkdir /mnt/tmpfs
# mount -t tmpfs -o size=128m,mode=1777 tmpfs /mnt/tmpfs
这里的 128m 就是 128Mb 的意思。
卸载:# umount /mnt/tmpfs
可以添加相应的设置到 /etc/fstab 开机自动挂载。
Debian 系统在启动时会清空 /tmp 目录,让 /tmp 使用 tmpfs 再合适不过了,这样还可以提高系统性能。
编辑 /etc/fstab,加入或修改 /tmp 这行:
tmpfs           /tmp            tmpfs   size=128m,mode=1777     0          0
 
直接使用 tmpfs 应该是最方便的。把 squid 的 cache 目录放到 RAMDisk 里提高 proxy 效能,甚至把 MySQL 的数据库文件也放到 RAMDisk 以减少磁盘 I/O 。想怎么玩都比较方便了。
需要注意的是,RAMDisk 的大小最好不要超过内存的一半,如果过大,系统就会使用 swap 分区了,性能反倒会下降。
 
参考资料:LINUX系统性能调谐

Pages: Prev 1 2 3 4 5 6 7 8 9 10 Next