Tag Archives: RedHat

版本差异还是发行版差异?

同事前几周在做 xen 虚拟机,玩了几天说 loop 内核模块的 max_loop=8 不够用,得改。今天我追了一下细节,发现了问题: CentOS 5 里面用 virt-install 安装的 xen domU 虚拟机,用普通文件作为虚拟机的硬盘,在刚刚进入安装界面的时候已经生成了配置文件,其类型为 tap:aio ;而 Ubuntu 12.04 里用同样的方法安装,进入安装界面之后还没生成,不知道改存到哪去了,反正 /etc/libvirt/ 和 /var/lib/libvirt/ 都没有。用 virsh dumpxml 弄出来看了看,有一段 <driver name=’file’/> ;再用 losetup –all 查看,确实是把虚拟硬盘按 loopback 文件处理的。 细节差异:CentOS 5 用的是 -xen 内核做 … Continue reading

Posted in 默认分类 | Tagged , , | 2 Comments

MySQL 备份、版本兼容性二三事

最近几天在筹备多做一个 slave 数据库,所以就用 InnoDB Hot Backup 工具把原来的 slave 库备份了一份,拷贝过来,执行了一段 binlog 之后卡住了,然后发现上述工具对 ARCHIVE 存储引擎的表没有考虑,没把数据文件复制过来。于是改用 Percona 出品的 xtrabackup 工具,其 innobackupex 脚本考虑的比较周全。这样总算搞到一份相对完整的备份。 搞到备份数据之后,我又想尝鲜,于是装了 Percona Server (即 MySQL 的一个增强 fork)的 5.5 版本,结果发现无法操作上述 ARCHIVE 存储引擎的表。查了查 MySQL 5.1 的文档,说从 5.0 到 5.1 之间,ARCHIVE存储引擎变了存储格式,不可能兼容,要求 dump/restore 操作。服了…… 考虑到 … Continue reading

Posted in 默认分类 | Tagged , , , , , , | Leave a comment

其实SYSOP手段也不是万能的,今天被迫动了一下dnsmasq的源码

今天发现电信通拦截DNS请求,把热门流量导向其内部 squid 缓存服务器。今天主要发现有两个,一个是新浪微博的 css 文件所在的域名 timg.sjs.sinajs.cn 被指向了 124.207.162.88 ,另一个是……查看某个视频的时候,浏览器状态栏提示从 124.207.162.83 下载数据,跟新浪微博被拦截的域名指向同一个 IP 段。但是页面里并没有写是从哪个域名下载视频的。于是乎,我想从公司网关的 dnsmasq 上取得数据,却意外的发现 –log-queries 参数无效,开启该参数后,按文档说明发 USR1 信号给 dnsmasq ,syslog 里却没看到 cache dump。 找了一台 Debian 看了看,是可以的。于是我立即习惯性的阴暗的认为是 RedHat 的软件质量问题。找了一套原装正品源码,编译后发现行为也是一样的。无奈了,SYSOP 手段也不是万能的,只好开始看源码。 源码里搜索 log-queries 找到 getopt 这个步骤,找到其内部名字 OPT_LOG。然后在源码文件里找这个,发现了 cache.c 文件里的 cache_dump 函数中,关于 … Continue reading

Posted in 默认分类 | Tagged , , , , | 3 Comments

有人忘记在 ifcfg 里写 NETMASK 了,结果……

我的好兄弟、大学同学谢某人,在虚拟机里玩 RHEL+Oracle 的时候,遇到一个诡异的事情,就是 RHEL 开机后 IP 地址会自动变化。我原以为是他装 Oracle 的时候某个开机自动执行的命令更改了地址,所以就在开机的各 rc 脚本之间夹带执行一次 ifconfig 命令,发现在开机过程中 IP 地址始终都是没有变化的。持续 ping 该机器,发现在出现登录提示符后才 ping 不通,并且提示符后还出现了 iscsi-initiator 关于断开和 target 的网络连接的错误提示信息。 没办法,看日志吧。/var/log/messages 日志明明白白的写着:NetworkManger 认为长度为零的 IP prefix 是无效的,因此接管了该网卡,并按 Auto eth0 设置了该网卡。看了看 ifcfg 文件,里面果然是没写掩码。此时谢同学不服气的嚷嚷,说另一个虚拟机也是这么写的,就不会自动变 IP。过去看了一下,发现那边没启动 NetworkManager 服务。哈哈…… 不过有个问题,ifconfig 命令对于不带掩码的 IP … Continue reading

Posted in 默认分类 | Tagged , , , , | Leave a comment

RHEL6 作为 xen domU 虚拟机,启用 hvc0 的方法

今天在 xen  虚拟机里安装了 RHEL6 beta,发现因为 sysvinit 被换成 upstart 之后,竟然不知道在哪里启用 hvc0 上的 getty 了。尝试改变 /etc/sysconfig/init 把 hvc0加到 ACTIVE_CONSOLES 里,但是开机时提示 hvc0 permission denied 之类的提示信息。 最后还是在内核上加 console= 参数了。不过注意:必须写成 console=tty console=hvc0 这样,其中 tty 那一项可以用 console=tty 也可以用 console=tty1。 如果只加console=hvc0 则用VNC查看虚拟机的时候看不到开机时的 dmesg 和服务脚本启动信息 如果顺序反了,最后不会启动 agetty 在 … Continue reading

Posted in 默认分类 | Tagged , , , | 4 Comments

很不幸,又遇到bug了——MySQL replication故障

我就说 RedHat 的软件质量不好,还总有人不信。这次又找到证据了。 RHEL5.4/5.5 里带的 mysql-server 包 # rpm -qi mysql-server Name        : mysql-server                 Relocations: (not relocatable) Version     : 5.0.77                            Vendor: Red Hat, Inc. Release     : 4.el5_4.2                     Build Date: Sat 30 Jan 2010 03:11:47 AM CST 存在 replication 时,slave 跟不上 … Continue reading

Posted in 默认分类 | Tagged , , , | Leave a comment

遇见了不知道是mcelog还是内核的bug

2月29日,遇到一台运行 kernel-xen 的机器 load 异常高,但没有正在运行的进程的问题。ps 命令结果中,有大量如下进程: root     31246  2817  0 Feb18 ?        00:00:00 crond root     31247 31246  0 Feb18 ?        00:00:00 /bin/bash /usr/bin/run-parts /etc/cron.hourly root     31248 31247  0 Feb18 ?        00:00:00 /bin/bash /etc/cron.hourly/mcelog.cron root     31249 31247  0 Feb18 ?        00:00:00 awk -v progname=/etc/cron.hourly/mcelog.cron progname {?????   print progname “:\n”? root     31250 31248  0 Feb18 ?        00:00:00 cat /sys/hypervisor/uuid 我亲自 cat 了一下那个文件,也卡住了。查看 /proc/$pid/status 文件,发现状态是 disk sleep。搜索了一下,发现有人报告过这个 bug:https://bugzilla.redhat.com/show_bug.cgi?id=522827 。该报告的意思是 mcelog 不应该去读 uuid 这个文件。但我以为,这应该是内核的 bug 吧?既然提供了这个文件,为啥不让读呢?

Posted in 默认分类 | Tagged , , , | Leave a comment

RedHat EL 5 是不是快要出update5了?

因为发现手头一台 xen dom0 上版本是-94的 xend 进程占用大量内存就找 RedHat 公司的朋友问了一下版本号,发现已经有新版本的 kernel-xen -186版本和 xen -108版本了,而且最新的 xen 包依赖了在 CentOS 5.4 里根本不存在的 xz-libs 包和 libext4fs.so 文件。这是不是意味着 RHEL 5 的 update5 快要出来了呢? 这一次,CentOS、Scientific、Oracle EL 谁跟得最快?拭目以待!

Posted in 默认分类 | Tagged , , , | Leave a comment

RedHat 网络安装,对NFS URL的格式要求很高哦

今天用nfs://host/dir的格式安装失败了。后来看了python-virtinst-0.400.3-5.el5包里面DistroInstaller.py文件的源码,发现其中有一步是转换NFS URL的格式: def _sanitize_url(url): “”” Do nothing for http or ftp, but make sure nfs is in the expected format “”” if url.startswith(“nfs://”): # Convert RFC compliant NFS      nfs://server/path/to/distro # to what mount/anaconda expect  nfs:server:/path/to/distro # and carry the latter … Continue reading

Posted in 默认分类 | Tagged , , , , , | Leave a comment

RedHat 升级好猛烈啊

今天发现手头的一台 RHEL 5 的 libvirt、libvirt-python、python-virtinst 包比另一台机器的版本高,比 CentOS 里也高,而且那几个包还是原装正版 RedHat 出品的。奇怪…… 后来问了 Oralce Linux 的技术支持熟人,发现 Oracle Linux 从5到5.4,里面包含的这几个包的版本确实有过较大变化,这也解释了我手头的这个 RHEL 版本变动是咋回事。 看来 RHEL 的所谓 update 还是挺猛烈的,几乎相当于发行一个新的大版本了。CentOS 今天很让我失望,竟然没有跟进 5.4。

Posted in 默认分类 | Tagged , , , , | 3 Comments