eygle.com   eygle.com
eygle.com  
 

« October 2005 | Blog首页 | December 2005 »

上一页 1 2 3 4 5 下一页


iSCSI节点名称定义及其他

作者:eygle

出处:http://blog.eygle.com

iSCSI节点名称有两种格式,即 iqn-type 格式和 eui-type 格式。
iqn-type的格式为:
iqn.yyyy-mm.backward_naming_authority:unique_device_name

在Linux上的格式为:
iqn.1987-05.com.cisco:RandomNumber

通常我们可以把RandomNumber更改为具有意义的名称如主机名称等。
缺省的,生成的节点名称可以在/etc/initiatorname.iscsi 得到.

InitiatorName=iqn.1987-05.com.cisco:01.ed671bf29e

我们可以修改为:

InitiatorName=iqn.1987-05.com.cisco:test2

重新启动iscsi服务后,Netapp端就能够正确识别initiator.

initiator
此时可以从主机上获得相关SCSI设备信息:
iscsi-sfnet: Loading iscsi_sfnet version 4:0.1.11-1
iscsi-sfnet: Control device major number 254
iscsi-sfnet:host3: Session established
scsi3 : SFNet iSCSI driver
scsi: unknown device type 31
  Vendor: NETAPP    Model: LUN               Rev: 0.2 
  Type:   Unknown                            ANSI SCSI revision: 04
  Vendor: NETAPP    Model: LUN               Rev: 0.2 
  Type:   Direct-Access                      ANSI SCSI revision: 04
SCSI device sda: 41943040 512-byte hdwr sectors (21475 MB)
SCSI device sda: drive cache: write through
 sda: sda1 sda2
Attached scsi disk sda at scsi3, channel 0, id 0, lun 1

可以通过fdisk来分区使用iscsi设备:
[root@test2 ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 20480.
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., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        3907     4000752   83  Linux
/dev/sda2            3908       20480    16970752   83  Linux

Command (m for help): q

使用iscsi-ls命令可以看到更为详细的磁盘信息:
[root@test2 ~]# iscsi-ls  -l
*******************************************************************************
SFNet iSCSI Driver Version ...4:0.1.11(12-Jan-2005)
*******************************************************************************
TARGET NAME             : iqn.1992-08.com.netapp:sn.84192734
TARGET ALIAS            : 
HOST ID                 : 3
BUS ID                  : 0
TARGET ID               : 0
TARGET ADDRESS          : 172.16.35.228:3260,1
SESSION STATUS          : ESTABLISHED AT Tue Nov 15 09:46:27 CST 2005
SESSION ID              : ISID 00023d000001 TSIH 113

DEVICE DETAILS:
---------------
LUN ID : 0
  Vendor: NETAPP   Model: LUN              Rev: 0.2 
  Type:                                    ANSI SCSI revision: 04
 
LUN ID : 1
  Vendor: NETAPP   Model: LUN              Rev: 0.2 
  Type:   Direct-Access                    ANSI SCSI revision: 04
  page83 type3: 60a98000686f6c504f34314e45774239
  page80: 686f6c504f34314e457742390a
  Device: /dev/sda
*******************************************************************************

Posted by eygle at 10:14 AM | Comments (0)


NetAPP iSCSI性能测试

作者:eygle

出处:http://blog.eygle.com

使用Bonnie++测试了一下NetApp iSCSI的性能:
测试结果如下:
[root@dell2650 bonnie++-1.03a]# ./bonnie++ -d /data1 -u root -s 2048 -m dell2650
Using uid:0, gid:0.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
dell2650         2G 12085  49 12846   5  4986   2  6788  25  9008   3 594.1   3
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  3072  99 +++++ +++ +++++ +++  3192  99 +++++ +++  8494 100
dell2650,2G,12085,49,12846,5,4986,2,6788,25,9008,3,594.1,3,16,3072,99,+,+,+,+,3192,99,+,+,8494,100

我们看到测试结果,Block写的速度大约在12M/Sec,Chr写的速度大约在7M/Sec。
这基本已经是100M网络的最大速度,瓶颈其实在网络上。

此时通过sar观察,iowati已经达到88.49%,IO出现等待。
[root@dell2650 /]# sar 2 30
Linux 2.4.21-27.ELsmp (dell2650)        11/14/2005

08:47:06 PM       CPU     %user     %nice   %system   %iowait     %idle
08:47:08 PM       all      0.00      0.00      7.00     93.00      0.00
08:47:10 PM       all      0.25      0.00     10.00     88.25      1.50
08:47:12 PM       all      0.00      0.00     12.25     86.75      1.00
08:47:14 PM       all      0.00      0.00      9.00     90.00      1.00
08:47:16 PM       all      0.00      0.00     11.50     88.00      0.50
08:47:18 PM       all      0.00      0.00     11.75     88.00      0.25
08:47:20 PM       all      0.25      0.00     11.75     87.25      0.75
08:47:22 PM       all      0.00      0.00     13.00     86.50      0.50
08:47:24 PM       all      0.00      0.00     11.25     88.75      0.00
08:47:26 PM       all      0.00      0.00     12.75     86.75      0.50
08:47:28 PM       all      0.00      0.00      8.75     91.25      0.00
08:47:30 PM       all      0.00      0.00     11.50     88.25      0.25
08:47:32 PM       all      0.00      0.00     10.50     88.75      0.75

.....
Average:          all      0.07      0.00     10.59     88.49      0.85


通过iostat观察,可以看到,Block写的速度大约是也是10M左右。
和Bonnie++测试的结果相符合。
[root@dell2650 /]# iostat 2|grep sdb1
Linux 2.4.21-27.ELsmp (dell2650)        11/14/2005

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
....
sdb1            138.50      2304.00     21268.00       4608      42536
sdb1             62.00      1024.00      8196.00       2048      16392
sdb1            134.00      2304.00     19248.00       4608      38496
sdb1            143.00      2048.00     28892.00       4096      57784
sdb1             78.50     14848.00     71044.00      29696     142088
....
sdb1             74.50     18304.00     25216.00      36608      50432
sdb1             76.50     19072.00      5888.00      38144      11776
sdb1             92.50      2176.00     43392.00       4352      86784
sdb1             81.00     10368.00     24704.00      20736      49408
sdb1             82.50     12032.00     29568.00      24064      59136
sdb1             93.00      3968.00     46208.00       7936      92416
sdb1             85.50      7296.00     41856.00      14592      83712
sdb1             85.00     13332.00     13056.00      26664      26112
....
sdb1             79.00      5504.00     27648.00      11008      55296
sdb1             61.50     12288.00     36992.00      24576      73984
sdb1             76.50      5632.00     37248.00      11264      74496
sdb1             62.00     12672.00     35584.00      25344      71168
sdb1             75.00      6656.00     15328.00      13312      30656


Linux上Bonnie++的编译过程如下供参考:
[root@dell2650 data1]# wget http://www.eygle.com/unix/bonnie/bonnie++-1.03a.tgz
--20:18:51--  http://www.eygle.com/unix/bonnie/bonnie++-1.03a.tgz
           => `bonnie++-1.03a.tgz'
Resolving www.eygle.com... done.
Connecting to www.eygle.com[211.99.197.16]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 76,207 [application/x-gzip]

100%[===========================================================>] 76,207       610.01K/s    ETA 00:00

20:18:51 (610.01 KB/s) - `bonnie++-1.03a.tgz' saved [76207/76207]

[root@dell2650 data1]# ls
bonnie++-1.03a.tgz  lost+found
[root@dell2650 data1]# gzip -d bonnie++-1.03a.tgz 
[root@dell2650 data1]# ls
bonnie++-1.03a.tar  lost+found
[root@dell2650 data1]# tar -xvf bonnie++-1.03a.tar 
bonnie++-1.03a/
bonnie++-1.03a/sun/
bonnie++-1.03a/sun/Makefile
bonnie++-1.03a/sun/pkginfo.in
bonnie++-1.03a/sun/pkginfo
bonnie++-1.03a/sun/prototype
bonnie++-1.03a/semaphore.cpp
bonnie++-1.03a/bon_suid.cpp
bonnie++-1.03a/Makefile
bonnie++-1.03a/bon_csv2html.1
bonnie++-1.03a/bon_file.h
bonnie++-1.03a/bon_csv2html.in
bonnie++-1.03a/conf.h.in
bonnie++-1.03a/bon_io.cpp
bonnie++-1.03a/bonnie++.spec
bonnie++-1.03a/configure
bonnie++-1.03a/bon_csv2html
bonnie++-1.03a/bon_csv2txt.in
bonnie++-1.03a/bon_time.h
bonnie++-1.03a/semaphore.h
bonnie++-1.03a/configure.in
bonnie++-1.03a/bonnie++.8
bonnie++-1.03a/forkit.h
bonnie++-1.03a/credits.txt
bonnie++-1.03a/bonnie++.spec.in
bonnie++-1.03a/install.sh
bonnie++-1.03a/changelog.txt
bonnie++-1.03a/bonnie++.cpp
bonnie++-1.03a/forkit.cpp
bonnie++-1.03a/zcav.cpp
bonnie++-1.03a/port.h.in
bonnie++-1.03a/debian/
bonnie++-1.03a/debian/dirs
bonnie++-1.03a/debian/docs
bonnie++-1.03a/debian/control
bonnie++-1.03a/debian/rules
bonnie++-1.03a/debian/changelog
bonnie++-1.03a/debian/copyright
bonnie++-1.03a/conf.h
bonnie++-1.03a/bon_file.cpp
bonnie++-1.03a/Makefile.in
bonnie++-1.03a/bon_csv2txt.1
bonnie++-1.03a/bonnie.h.in
bonnie++-1.03a/port.h
bonnie++-1.03a/zcav.8
bonnie++-1.03a/copyright.txt
bonnie++-1.03a/sh.common
bonnie++-1.03a/bon_io.h
bonnie++-1.03a/bonnie.8
bonnie++-1.03a/bonnie.h
bonnie++-1.03a/bon_csv2txt
bonnie++-1.03a/bon_time.cpp
bonnie++-1.03a/readme.html

[root@dell2650 data1]# cd bonnie++-1.03a
[root@dell2650 bonnie++-1.03a]# ./configure
checking for g++... g++
checking for C++ compiler default output... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for a BSD-compatible install... /usr/bin/install -c
checking for an ANSI C-conforming const... yes
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking vector.h usability... yes
checking vector.h presence... yes
checking for vector.h... yes
checking vector usability... yes
checking vector presence... yes
checking for vector... yes
checking algorithm usability... yes
checking algorithm presence... yes
checking for algorithm... yes
checking algo.h usability... yes
checking algo.h presence... yes
checking for algo.h... yes
checking algo usability... no
checking algo presence... no
checking for algo... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating bonnie.h
config.status: creating port.h
config.status: creating bonnie++.spec
config.status: creating bon_csv2html
config.status: creating bon_csv2txt
config.status: creating sun/pkginfo
config.status: creating conf.h
config.status: conf.h is unchanged
[root@dell2650 bonnie++-1.03a]# make
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope   -c bon_io.cpp
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope   -c bon_file.cpp
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope   -c bon_time.cpp
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope   -c semaphore.cpp
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope   -c forkit.cpp
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope   -c bon_suid.cpp
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope   bonnie++.cpp
 -o bonnie++ bon_io.o bon_file.o bon_time.o semaphore.o forkit.o bon_suid.o 
bonnie++.cpp: In function `void ctrl_c_handler(int, siginfo_t*, void*)':
bonnie++.cpp:142: warning: unused parameter `int sig'
bonnie++.cpp:142: warning: unused parameter `void*unused'
g++ -O2  -DNDEBUG -Wall -W -Wshadow -Wpointer-arith -Wwrite-strings -pedantic -ffor-scope
   zcav.cpp -o zcav bon_suid.o 

Posted by eygle at 12:32 AM | Comments (2)


November 14, 2005

NetAPP + Linux iSCSI配置step-by-step

作者:eygle

出处:http://blog.eygle.com

Redhat Linux从AS3 update 4开始集成iscsi-initiator。

[root@dell2650 etc]# cat /etc/redhat-release 
Red Hat Enterprise Linux AS release 3 (Taroon Update 4)

[root@dell2650 etc]# rpm -qa|grep iscsi
iscsi-initiator-utils-3.6.2-4

在NETAPP上可以通过如下步骤分配iSCSI LUN
在菜单Luns部分,选择Add:
创建LUN 设置好相应的参数增加即可。

如果一切正常,即可显示成功:
成功...
添加成功后可以在如下界面查看:
查看
此时可以在管理主机上启动/重新启动iscsi进程以识别增加的设备:
[root@dell2650 dev]# /etc/init.d/iscsi stop
Stopping iSCSI: iscsid[  OK  ]
[root@dell2650 dev]# /etc/init.d/iscsi start
Starting iSCSI: iscsi iscsid[  OK  ]

我们可以通过dmesg获得硬件信息:
iSCSI: 3.6.1 (22-Sep-2004) built for Linux 2.4.21-27.ELsmp
iSCSI: will translate deferred sense to current sense on disk command responses
iSCSI: control device major number 254
iSCSI: allocating task cache iscsi_0000729382 with reaping disabled
iSCSI: detected HBA f6aed100, host #2
scsi2 : iSCSI 3.6.1 (22-Sep-2004)
iSCSI: bus 0 target 0 = iqn.1992-08.com.netapp:sn.84192734
iSCSI: bus 0 target 0 portal 0 = address 172.16.35.228 port 3260 group 1
iSCSI: bus 0 target 0 trying to establish session c3ae8000 to portal 0, address 172.16.35.228 port 3260 group 1
iSCSI: bus 0 target 0 established session c3ae8000 #1, portal 0, address 172.16.35.228 port 3260 group 1
scsi singledevice 2 0 0 1
  Vendor: NETAPP    Model: LUN               Rev: 0.2 
  Type:   Direct-Access                      ANSI SCSI revision: 04
Attached scsi disk sdb at scsi2, channel 0, id 0, lun 1
iSCSI: session c3ae8000 recv_cmd f693aa00, cdb 0x0, status 0x2, response 0x0, senselen 18, key 06, ASC/ASCQ 29/00,
itt 3 task f6906f74 to (2 0 0 1), iqn.1992-08.com.netapp:sn.84192734
iSCSI: Sense f0000600 0000000a 00000000 29000000 0000
SCSI device sdb: 20971520 512-byte hdwr sectors (10737 MB)
 sdb: unknown partition table


从这里可以看到其设备符为:sdb,我们此时就可以向操作普通硬盘一样操作iSCISI硬盘了.
以下是简单的分区过程:
[root@dell2650 etc]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 20480.
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., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot    Start       End    Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-20480, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-20480, default 20480): +4096M

Command (m for help): p

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb1             1      3907   4000752   83  Linux

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (3908-20480, default 3908): 
Using default value 3908
Last cylinder or +size or +sizeM or +sizeK (3908-20480, default 20480): 
Using default value 20480

Command (m for help): p

Disk /dev/sdb: 21.4 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/sdb1             1      3907   4000752   83  Linux
/dev/sdb2          3908     20480  16970752   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@dell2650 etc]# cd /
[root@dell2650 /]# mkdir data1
[root@dell2650 /]# mkfs /dev/sdb1
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
500960 inodes, 1000188 blocks
50009 blocks (5.00%) reserved for the super user
First data block=0
31 block groups
32768 blocks per group, 32768 fragments per group
16160 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@dell2650 /]# mount /dev/sdb1 /data1
[root@dell2650 /]# df -k /data1
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb1              3937820        20   3737764   1% /data1
[root@dell2650 /]# 

Posted by eygle at 7:58 PM | Comments (0)


November 13, 2005

批量绑定(bulk binds):FOR循环与FORALL的性能比较

作者:eygle

出处:http://blog.eygle.com

通常在SQL语句中给PL/SQL变量赋值叫做绑定(Binding),一次绑定一个完整的集合称为批量绑定(Bulk Binding)。

批量绑定(Bulk binds)可以通过减少在PL/SQL和SQL引擎之间的上下文切换(context switches )提高了性能.

批量绑定(Bulk binds)包括:
(i) Input collections, use the FORALL statement,一般用来改善DML(INSERT、UPDATE和DELETE) 操作的性能
(ii) Output collections, use BULK COLLECT clause,一般用来提高查询(SELECT)的性能

FORALL的语法如下:

FORALL index IN lower_bound..upper_bound sql_statement;

下面是一个简单测试,用以说明FORALL与FOR循环的性能差异。
SQL> drop table blktest;

Table dropped.

Elapsed: 00:00:00.13
SQL> 
SQL> CREATE TABLE blktest (num NUMBER(20), name varchar2(50));

Table created.

Elapsed: 00:00:00.08
SQL> 
SQL> CREATE OR REPLACE PROCEDURE bulktest
  2  IS
  3     TYPE numtab IS TABLE OF NUMBER (20)
  4        INDEX BY BINARY_INTEGER;
  5  
  6     TYPE nametab IS TABLE OF VARCHAR2 (50)
  7        INDEX BY BINARY_INTEGER;
  8  
  9     pnums    numtab;
 10     pnames   nametab;
 11     t1       NUMBER;
 12     t2       NUMBER;
 13     t3       NUMBER;
 14  BEGIN
 15     FOR j IN 1 .. 1000000
 16     LOOP
 17        pnums (j)         := j;
 18        pnames (j)        := 'Seq No. ' || TO_CHAR (j);
 19     END LOOP;
 20  
 21     SELECT DBMS_UTILITY.get_time
 22       INTO t1
 23       FROM DUAL;
 24  
 25     FOR i IN 1 .. 1000000
 26     LOOP
 27        INSERT INTO blktest
 28             VALUES (pnums (i), pnames (i));
 29     END LOOP;
 30  
 31     SELECT DBMS_UTILITY.get_time
 32       INTO t2
 33       FROM DUAL;
 34  
 35     FORALL i IN 1 .. 1000000
 36        INSERT INTO blktest
 37             VALUES (pnums (i), pnames (i));
 38  
 39     SELECT DBMS_UTILITY.get_time
 40       INTO t3
 41       FROM DUAL;
 42  
 43     DBMS_OUTPUT.put_line ('Execution Time (hsecs)');
 44     DBMS_OUTPUT.put_line ('---------------------');
 45     DBMS_OUTPUT.put_line ('FOR loop: ' || TO_CHAR (t2 - t1));
 46     DBMS_OUTPUT.put_line ('FORALL:   ' || TO_CHAR (t3 - t2));
 47  END;
 48  /

Procedure created.

Elapsed: 00:00:01.46
SQL> exec bulktest;
Execution Time (hsecs)
---------------------
FOR loop: 30361
FORALL:   4792

PL/SQL procedure successfully completed.

Elapsed: 00:06:32.92

我们可以看到FORALL较FOR循环性能大大提高。

Posted by eygle at 8:28 PM | Comments (6)


无尽的爱(Endless Love) - 美丽的神话

作者:eygle

出处:http://blog.eygle.com

20051001_EndlessLove.jpg

老弟买了《神话》的正版DVD,故事情节那个就不用说了,反正一般般,交代不清,牵强附会的地方颇多。

但是电影的主题曲却确实不错,一听就是韩派的柔情曲风,跟金喜善确实精致甚或有些凄美的脸庞相互映衬,倒也很有些气氛。

中间孙楠和韩红的版本,唱功自然是比结尾成龙和金喜善要好不少,只是本身作为韩派曲风,金喜善轻柔的韩语发音,应该是最符合节奏的,越发衬托出成龙唱得实在不敢恭维。

美丽的神话

梦中人熟悉的脸孔
你是我守候的温柔
就算泪水淹没天地
我不会放手
每一刻孤独的承受
只因我曾许下承诺
你我之间熟悉的感动
爱就要苏醒

万世沧桑唯有爱是永远的神话
潮起潮落始终不毁真爱的相约
几番苦痛的纠缠
多少黑夜挣扎
紧握双手让我和你再也不离分

枕上雪冰封的爱恋
真心相拥才能融解
风中摇曳炉上的火
不灭亦不休

等待花开春去春又来
无情岁月笑我痴狂
心如钢铁任世界荒芜
思念永相随

万世沧桑唯有爱是永远的神话
潮起潮落始终不毁真爱的相约
几番苦痛的纠缠
多少黑夜挣扎
紧握双手让我和你再也不离分

悲伤岁月唯有爱是永远的神话
谁都没有遗忘古老
古老的誓言
你的泪水化为漫天飞舞的彩蝶
爱是翼下之风
两心相随自在飞

你是我心中唯一美丽的神话

无尽的爱(Endless Love) -居然还有韩语注音,搞笑

解开我最神秘的等待
星星坠落风在吹动
终於再将你拥入怀中
两颗心颤抖
相信我不变的真心
千年等待有我承诺
无论经过多少的寒冬
我绝不放手

(韩语:以才那耶少呐儿恰苦努路卡妈又)
现在紧抓住我的手闭上眼睛
(无礼差浪海斗那又三刚开吧又)
请你回想起过去我们恋爱的日子
(无礼脑目差浪海少)
我们是因为太爱
(啊怕少奶又)
所以更使得我们痛苦
(少路差浪哈达妈又没太少奶又)
我们连爱你这一句话都无法讲

每一夜被心痛穿越
思念永没有终点
早习惯了孤独相随
我微笑面对
相信我你选择等待
再多苦痛也不闪躲
只有你的温柔能解救
无边的冷漠
让爱成为你我心中
那永远盛开的花
穿越时空绝不低头
永不放弃的梦

(无礼脑目差浪海少)
我们是因为太爱
(啊怕少奶又)
所以更使得我们痛苦
(少路差浪哈达妈又没太少奶又)
我们连爱你这一句话都无法讲
让爱成为你我心中
那永远盛开的花
(无礼少就海斗那少以即那妈拉又)
我们千万不要忘记我们的约定

唯有真爱追随你我
穿越无尽时空

(少路差浪哈达妈又没太少奶又)
我们连爱你这一句话都无法讲

爱是心中唯一不变美丽的神话

Posted by eygle at 3:48 AM | Comments (4)


November 12, 2005

Oracle HowTo:如何通过只读方式更改Oracle数据文件位置

作者:eygle

出处:http://blog.eygle.com

在Oracle数据库中,有多种方式可以移动数据文件的位置,之前介绍过几种方法:Oracle HowTo:在非归档模式下如何更改数据文件位置Oracle HowTo:如何移动数据文件的位置?
以上两种方法,可能在要求较高的24x7系统中不适合采用,因为会使表空间长时间不可用。
特别是当表空间数据文件巨大时,物理拷贝可能需要较长的时间。

本文推荐另外一种方法,可以做一个折中,以下是一个简单的步骤说明:
1.将表空间置于只读
只读状态可以使数据仍然可为用户访问.
alter tablespace tablespace_name read only;
2.物理拷贝文件
3.将表空间offline
alter tablespace tablespace_name offline;
4.rename数据文件
alter database rename file 'old_dir_file' to 'new_dir_file';
5.将表空间联机
alter tablespace tablespace_name online;
6.将表空间置于read write模式
alter tablespace tablespace_name read write;
以下是示范步骤:
1.将表空间置于只读状态
[oracle@jumper oracle]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Nov 12 21:10:49 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/oradata/conner/archive
Oldest online log sequence     7
Next log sequence to archive   10
Current log sequence           10
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------
/opt/oracle/oradata/conner/system01.dbf
/opt/oracle/oradata/conner/undotbs01.dbf
/opt/oracle/oradata/conner/users01.dbf

SQL> alter tablespace users read only;

Tablespace altered.

2.物理拷贝文件

SQL> ! cp /opt/oracle/oradata/conner/users01.dbf /opt/oracle/oradata/users01.dbf

3.将表空间脱机
SQL> alter tablespace users offline;

Tablespace altered.

4.修改文件名称
SQL> alter database rename file '/opt/oracle/oradata/conner/users01.dbf' to '/opt/oracle/oradata/users01.dbf';

Database altered.

5.将表空间联机
SQL> alter tablespace users online;

Tablespace altered.

6.将表空间置于读写状态
SQL> alter tablespace users read write;

Tablespace altered.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------
/opt/oracle/oradata/conner/system01.dbf
/opt/oracle/oradata/conner/undotbs01.dbf
/opt/oracle/oradata/users01.dbf

SQL> 

Posted by eygle at 9:50 PM | Comments (4)


Oracle HowTo:如何移动数据文件的位置?

作者:eygle

出处:http://blog.eygle.com

在Oracle数据库中,有多种方式可以移动数据文件的位置,之前介绍过一种方法:Oracle HowTo:在非归档模式下如何更改数据文件位置
其实可以采用的方法有多种,本文继续补充几种常用方法:
采用offline的方式
第一步,将表空间offline
alter tablespace tablespace_name offline;
第二步,cp文件到新的目录并rename修改控制文件
第三步,将相应表空间online
当然这种方式同样会影响期间的表空间使用。

以下是简单的示范步骤:
1.将表空间offline
[oracle@jumper oracle]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Nov 12 18:14:21 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/oradata/conner/archive
Oldest online log sequence     6
Current log sequence           9
SQL> select name from v$datafile;

NAME
---------------------------------------------------------
/opt/oracle/oradata/conner/system01.dbf
/opt/oracle/oradata/conner/undotbs01.dbf
/opt/oracle/oradata/conner/users01.dbf

SQL> alter tablespace users offline;

Tablespace altered.

2.拷贝相应的数据文件
SQL> ! cp /opt/oracle/oradata/conner/users01.dbf /opt/oracle/oradata/users01.dbf

SQL> alter tablespace users rename datafile '/opt/oracle/oradata/conner/users01.dbf'
     to '/opt/oracle/oradata/users01.dbf';

Tablespace altered.

3.将表空间online
SQL> alter tablespace users online;

Tablespace altered.

SQL> select name from v$datafile;

NAME
------------------------------------------------------------------------
/opt/oracle/oradata/conner/system01.dbf
/opt/oracle/oradata/conner/undotbs01.dbf
/opt/oracle/oradata/users01.dbf

当然还有一些其他的方法可以采用.

Posted by eygle at 9:09 PM | Comments (6)


November 11, 2005

快快乐乐做人 开开心心过节

作者:eygle

出处:http://blog.eygle.com

今天下班的时候出来的很晚,调整了一个数据库.

和几个朋友聊了一会,一个在忙论文;一个跑去打球;一个抱着热水袋胃痛.想吃饭都没有人了.

从建国门出来,沿街慢慢行走,很喜欢初冬这微凉的感觉,看到一对男女在桥上相拥着看桥下的灯火,很是浪漫的样子.

忽然想到一个问题,在这样的日子里,你会想起谁?

在超市里狂买了一堆东西回家,分了一半的开心果给阿呆,告诉她:要快快乐乐做人 开开心心过节

Posted by eygle at 10:02 PM | Comments (11)


被人晃点

作者:eygle

出处:http://blog.eygle.com

早上7点钟就爬起来了
在我这样的生活状态下这简直是不可思议的事情

因为前天埃森哲的HR打电话来说今天上午7:30有个美国的电话interview
7:30,我当时就狂FT,他说因为那边是美国时间,所以没有办法

唉,落魄时期咱就不那么XX了
那就早上早点儿起来吧,而且还提前半个小时
怎么也得有半个小时看看英文的资料,提前进入一下语境吧
好歹也是英文interview,鸡同鸭讲的可能性不是不大,而是很大

我觉得洋鬼子应该比较守时吧
结果.....7:30过了到8:30,又到8:30
我都在暖烘烘的暖气下面快重新睡着了
还是没有电话

于是乎,脱衣服,上床,重新睡
这都什么跟什么啊

10点多又有电话,于是不困了

oh yeah

Posted by eygle at 11:59 AM | Comments (12)


November 10, 2005

Linux上iSCSI配置

作者:eygle

出处:http://blog.eygle.com

1.修改配置文件
修改/etc/iscsi.conf文件,增加以下配置(还有很多参数可以配置):

DiscoveryAddress=172.16.35.228
TargetName=iqn.1987-05.com.cisco:test2

2.启动iscsi

[root@test2 ~]# /etc/init.d/iscsi start 
Checking iscsi config:  [  OK  ]
Loading iscsi driver:  [  OK  ]
Starting iscsid: [  OK  ]

3.观察日志
Nov  8 15:25:33 test2 kernel: iscsi-sfnet: Loading iscsi_sfnet version 4:0.1.11-1
Nov  8 15:25:33 test2 kernel: iscsi-sfnet: Control device major number 254
Nov  8 15:25:33 test2 iscsi: Loading iscsi driver:  succeeded
Nov  8 15:25:38 test2 iscsid[9664]: version 4:0.1.11 variant (12-Jan-2005)
Nov  8 15:25:38 test2 iscsi: iscsid startup succeeded
Nov  8 15:25:38 test2 iscsid[9668]: cannot make connection to 172.16.35.228:3260: Connection refused
Nov  8 15:25:38 test2 iscsid[9668]: Connection to Discovery Address 172.16.35.228 failed
Nov  8 15:25:39 test2 iscsid[9668]: cannot make connection to 172.16.35.228:3260: Connection refused
Nov  8 15:25:39 test2 iscsid[9668]: Connection to Discovery Address 172.16.35.228 failed
Nov  8 15:25:40 test2 iscsid[9668]: cannot make connection to 172.16.35.228:3260: Connection refused

如果你看到如上错误,那么你需要启用NetApp的iSCSI支持并创建相应卷组。
4.配置好Netapp
此时日志显示:
Nov  8 15:43:38 test2 kernel: iscsi-sfnet:host0: Session established
Nov  8 15:43:38 test2 kernel: scsi0 : SFNet iSCSI driver
Nov  8 15:43:38 test2 kernel: scsi: unknown device type 31
Nov  8 15:43:38 test2 kernel:   Vendor: NETAPP    Model: LUN               Rev: 0.2
Nov  8 15:43:38 test2 kernel:   Type:   Unknown                            ANSI SCSI revision: 04

这显示主机已经发现了iscsi设备
在dmesg输出中也可以看到这个信息
SCSI subsystem initialized
iscsi-sfnet: Loading iscsi_sfnet version 4:0.1.11-1
iscsi-sfnet: Control device major number 254
iscsi-sfnet: Loading iscsi_sfnet version 4:0.1.11-1
iscsi-sfnet: Control device major number 254
iscsi-sfnet:host0: Session established
scsi0 : SFNet iSCSI driver
scsi: unknown device type 31
  Vendor: NETAPP    Model: LUN               Rev: 0.2 
  Type:   Unknown                            ANSI SCSI revision: 04

5.查看设备信息
此时可以使用iscsi-ls等命令查看相关Lun信息
[root@test2 etc]# iscsi-ls
*******************************************************************************
SFNet iSCSI Driver Version ...4:0.1.11(12-Jan-2005)
*******************************************************************************
TARGET NAME             : iqn.1992-08.com.netapp:sn.84192734
TARGET ALIAS            : 
HOST ID                 : 0
BUS ID                  : 0
TARGET ID               : 0
TARGET ADDRESS          : 172.16.35.228:3260,1
SESSION STATUS          : ESTABLISHED AT Tue Nov  8 15:43:38 CST 2005
SESSION ID              : ISID 00023d000001 TSIH 101
*******************************************************************************

Posted by eygle at 6:49 PM | Comments (0)


上一页 1 2 3 4 5 下一页


CopyRight © 2004-2008 eygle.com, All rights reserved.