1,替换空行
替换时勾选“正则表达式”然后把所有的 "^$" (不含引号) 替换成没有。
2,删除字与字之间的空格
在查找框内输入([!a-zA-Z0-9\]]) ([!a-zA-Z0-9\[]),在替换为框中输入\l\2,然后点击全部替换就OK了。
上面的意思是查找的内容不包括英文字母、数字和符号],\1的意思是查找到的第一部分内容,\2的意思是查找到的第二部分内容,第一部分的内容和第二部分的内容中间的空格去掉了,所以整个替换就完成了。
3,删除网页形式的换行
选择手动换行符
如果移植cramfs文件系统时,出现下面的情况请确认你的uboot和内核没有开启硬件ECC校验,这是我在给uboot添加硬件ECC后移植cramfs文件系统时出现的问题。
(uboot添加硬件ECC校验可以参考这个文档http://blog.csdn.net/sonbai/article/details/8737129)
Modified by fulinux for s3c2440/s3c2410 board.
DRAM: 64 MiB
## Unknown FLASH on Bank 0: ID 0xffff, Size = 0x00000000 = 0 MB
Flash: 0 Bytes
NAND: 64 MiB
In: serial
Out: serial
Err: serial
Net: dm9000
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x100000, size 0x600000
6291456 bytes read: OK
## Booting kernel from Legacy Image at 30008000 ...
Image Name: Linux Kernel
Created: 2013-04-10 11:27:41 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2051992 Bytes = 2 MiB
Load Address: 30008000
Entry Point: 30008040
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
OS entry point: 30008040
Image entry poit=30008040
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 3.0.0 (lingyun@localhost.localdomain) (gcc version 4.5.4 (Buildroot 2012.08) ) #11 Wed Apr 10 19:27:38 CST 2013
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: SMDK2440
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C24XX Clocks, Copyright 2004 Simtec Electronics
S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernel command line: noinitrd root=/dev/mtdblock2 rootfstype=cramfs init=/linuxrc console=ttyS0,115200 mem=64M loglevel=7
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 60792k/60792k available, 4744k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc4800000 - 0xf6000000 ( 792 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc0024000 ( 112 kB)
.text : 0xc0024000 - 0xc03c0000 (3696 kB)
.data : 0xc03c0000 - 0xc03deb40 ( 123 kB)
.bss : 0xc03deb64 - 0xc0405884 ( 156 kB)
NR_IRQS:85
irq: clearing pending ext status 00080000
irq: clearing subpending status 00000002
Console: colour dummy device 80x30
console [ttyS0] enabled
Calibrating delay loop... 201.52 BogoMIPS (lpj=503808)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
gpiochip_add: gpios 288..303 (GPIOK) failed to register
gpiochip_add: gpios 320..334 (GPIOL) failed to register
gpiochip_add: gpios 352..353 (GPIOM) failed to register
NET: Registered protocol family 16
S3C Power Management, Copyright 2004 Simtec Electronics
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C244X: Clock Support, DVS off
bio: create slab <bio-0> at 0
SCSI subsystem initialized
s3c-i2c s3c2440-i2c: slave address 0x10
s3c-i2c s3c2440-i2c: bus frequency set to 98 KHz
s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
NetWinder Floating Point Emulator V0.97 (extended precision)
NTFS driver 2.1.30 [Flags: R/O].
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 118
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Console: switching to colour frame buffer device 30x40
fb0: s3c2410fb frame buffer device
s3c2440-uart.0: ttyS0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: ttyS1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: ttyS2 at MMIO 0x50008000 (irq = 76) is a S3C2440
brd: module loaded
loop: module loaded
Uniform Multi-Platform E-IDE driver
ide-gd driver 1.18
ide-cd driver 5.00
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
s3c24xx-nand s3c2440-nand: NAND hardware ECC
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 3 MTD partitions on "NAND":
0x000000000000-0x000000100000 : "u-boot"
0x000000100000-0x000000b00000 : "kernel"
0x000000b00000-0x000004000000 : "rootfs"
dm9000 Ethernet Driver, V1.31
eth0: dm9000e at c4862300,c4864304 IRQ 51 MAC: 08:00:3e:26:0a:11 (chip)
mousedev: PS/2 mouse device common for all mice
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
i2c /dev entries driver
TCP cubic registered
NET: Registered protocol family 17
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
end_request: I/O error, dev mtdblock2, sector 0
Buffer I/O error on device mtdblock2, logical block 0
end_request: I/O error, dev mtdblock2, sector 0
Buffer I/O error on device mtdblock2, logical block 0
end_request: I/O error, dev mtdblock2, sector 8
Buffer I/O error on device mtdblock2, logical block 1
end_request: I/O error, dev mtdblock2, sector 8
Buffer I/O error on device mtdblock2, logical block 1
end_request: I/O error, dev mtdblock2, sector 16
Buffer I/O error on device mtdblock2, logical block 2
end_request: I/O error, dev mtdblock2, sector 16
Buffer I/O error on device mtdblock2, logical block 2
end_request: I/O error, dev mtdblock2, sector 24
Buffer I/O error on device mtdblock2, logical block 3
end_request: I/O error, dev mtdblock2, sector 24
Buffer I/O error on device mtdblock2, logical block 3
List of all partitions:
1f00 1024 mtdblock0 (driver?)
1f01 10240 mtdblock1 (driver?)
1f02 54272 mtdblock2 (driver?)
No filesystem could mount root, tried: cramfs
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
Backtrace:
[<c0033590>] (dump_backtrace+0x0/0x10c) from [<c02d5eec>] (dump_stack+0x18/0x1c)
r6:00008000 r5:c3892007 r4:c03defc0 r3:ffffffff
[<c02d5ed4>] (dump_stack+0x0/0x1c) from [<c02d5f50>] (panic+0x60/0x18c)
[<c02d5ef0>] (panic+0x0/0x18c) from [<c0008df0>] (mount_block_root+0x1d8/0x218)
r3:c3819f2c r2:00000020 r1:c3819f58 r0:c036b94c
r7:c036b9b4
[<c0008c18>] (mount_block_root+0x0/0x218) from [<c0008fdc>] (mount_root+0xac/0xd0)
[<c0008f30>] (mount_root+0x0/0xd0) from [<c0009160>] (prepare_namespace+0x160/0x1b8)
r4:c03debe0
[<c0009000>] (prepare_namespace+0x0/0x1b8) from [<c00089d4>] (kernel_init+0xe4/0x118)
r5:c001f028 r4:c03deb80
[<c00088f0>] (kernel_init+0x0/0x118) from [<c0045900>] (do_exit+0x0/0x6d0)
r5:c00088f0 r4:00000000
U-Boot 2010.09 (Apr 10 2013 - 13:25:25)
Modified by fulinux for s3c2440/s3c2410 board.
DRAM: 64 MiB
## Unknown FLASH on Bank 0: ID 0xffff, Size = 0x00000000 = 0 MB
Flash: 0 Bytes
NAND: 64 MiB
In: serial
Out: serial
Err: serial
Net: dm9000
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x100000, size 0x600000
6291456 bytes read: OK
## Booting kernel from Legacy Image at 30008000 ...
Image Name: Linux Kernel
Created: 2013-04-10 11:27:41 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2051992 Bytes = 2 MiB
Load Address: 30008000
Entry Point: 30008040
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
OS entry point: 30008040
Image entry poit=30008040
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 3.0.0 (lingyun@localhost.localdomain) (gcc version 4.5.4 (Buildroot 2012.08) ) #11 Wed Apr 10 19:27:38
1、常规hba卡相关概念
HBA and WWN
首先介绍一下什么是HBA。
这里所说的HBA,全称FC HBA,也就是Fibre Channel Host Bus Adapter。在FC网络中,主机(如服务器)需要和FC网络、FC存储设备(如SAN)连接时,需要使用一种接口卡,就如同连接以太网需要以太网卡一样。这种接口卡就叫做FC HBA,简称HBA
和以太网卡的MAC地址一样,HBA上也有独一无二的标识,这就是WWN(World Wide Name)。HBA上的WWN有两种:
Node WWN(WWNN):每个HBA有其独有的Node WWN
Port WWN(WWPN):HBA卡上每个port有其独一无二的Port WWN。由于通讯是通过port进行的,多数情况下需要使用WWPN而不是WWNN。
WWN的长度为8bytes,用16进制表示并用冒号分隔。例如:50:06:04:81:D6:F3:45:42
实现SAN数据安全方法
保证SAN数据安全的两个基本安全机制是分区制zoning和逻辑单元值(LogicalUnitNumber)掩码。
分区制是一种分区方法。通过该方法,一定的存储资源只对于那些通过授权的用户和部门是可见的。一个分区可以由多个服务器、存储设备、子系统、交换机、HBA和其它计算机组成。只有处于同一个分区的成员才可以互相通讯。
分区制往往在交换级来实现。根据实现方式,可以分为两种模式,一为硬分区,一为软分区。硬分区是指根据交换端口来制定分区策略。所有试图通过未授权端口进行的通讯均是被禁止的。由于硬分区是在系统电路里来实现,并在系统路由表中执行,因此,较之软分区,具有更好的安全性。
在光纤通道网络中,软分区是基于广域命名机制的(WWN)的。WWN是分配给网络中光纤设备的唯一识别码。由于软分区是通过软件来保证在不同的分区中不会出现相同的WWNs,因此,软分区技术比硬分区具有更好的灵活性,特别是在网络配置经常变化的应用中具有很好的可管理性。
有些交换机具有端口绑定功能,从而可以限制网络设备只能和通过预定义的交换端口进行通讯。利用这种技术,可以实现对存储池的访问限制,从而保护SAN免受非授权用户的访问。
另一种被广泛采用的技术是LUN掩码。一个LUN就是对目标设备(如磁带和磁盘阵列)内逻辑单元的SCSI识别标志。在光纤通道领域,LUN是基于系统的WWN实现的。
LUN掩码技术是将LUN分配给主机服务器,这些服务器只能看到分配给它们的LUN。如果有许多服务器试图访问特定的设备,那么网络管理者可以设定特定的LUN或LUN组可以访问,从而可以拒绝其它服务器的访问,起到保护数据安全的目的。不仅在主机上,而且在HBA、存储控制器、磁盘阵列、交换机上也可以实现各种形式的LUN屏蔽技术。
如果能够将分区制和LUN技术与其它的安全机制共同运用到网络及其设备上的话,对网络安全数据安全将是非常有效的。
WWN可以与LUN关联吗?
在一个磁盘阵列中将世界通用名称(WWN)和一个逻辑单元序号关联起来,是在SAN中实现数据安全的一个方法。在你的服务器中每一个连接到SAN的HBA都有一个WWN。
在一个磁盘阵列中,你可以将WWN分配给特定的LUN,从而即使在SAN组织中没有实现分区,也只有特定的HBA可以访问特定的LUN,这通常叫做“LUN屏蔽”。
2、hba卡大致分类和一些混淆概念
下面是从百度文库里查的资料
主机总线适配器(Host Bus Adapter,HBA)是一个在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器。因为HBA减轻了主处理器在数据存储和检索任务的负担,它能够提高服务器的性能。一个HBA和与之相连的磁盘子系统有时一起被称作一个磁盘通道。
光纤网卡和HBA(主机总线适配器)卡有何区别?
在讨论这个问题的时候,需要先说清楚一个问题:我们知道,在早期的SAN存储系统中,服务器与交换机的数据传输是通过光纤进行的,因为服务器是把SCSI 指令传输到存储设备上,不能走普通LAN网的IP协议,所以需要使用FC传输,因此这种SAN就叫FC-SAN,而后期出现了用IP协议封装的SAN,可以完全走普通LAN网络,因此叫做IP-SAN,其中最典型的就是现在热门的ISCSI。
这两种方式都需要对数据块进行繁重的读包解包操作,因此高性能的SAN系统是需要在服务器上安装一块专门负责解包工作以减轻处理器负担的网卡,这种网卡大家就叫它HBA卡,它除了执行解包工作外当然还可以提供一个光纤接口(如果是iSCSI HBA卡就是提供普通的RJ45接口)以用于跟对应的交换机连接;另外,HBA物理上你可以把它当作网卡一样插在PCI或者PCI-E槽位里,因此这种设备的用法非常相一张网卡,很多人也就把它跟普通网卡或普通的光纤网卡混淆了。当然,有的iSCSI HBA卡就可以当作普通网卡来用,不过从价格上考虑这是非常奢侈的。
HBA的常规定义:就是连接主机I/O总线和计算机内存系统的I/O适配器。按照这个定义,像显卡就是连接视频总线和内存,网卡就是连接网络总线和内存,SCSI-FC卡就是连接SCSI或者FC总线和内存的,它们都应该算是HBA。HBA卡有FC- HBA和iSCSI HBA将来还有其他HBA卡,但是,HBA通常用在SCSI。Adapter(适配器)和NIC用于FC;而NIC也会用于以太网和令牌环网。
其实,网卡是大家常提到的一个类型设备的总称,是指安装在主机里,通过网络连接线(双绞线、光纤线缆、同轴电缆等)与网络交换机(以太网交换机、FC交换机、ISCSI交换机等)、或与其它网络设备(存储设备、服务器、工作站等)连接,从而形成一个网络的硬件设备。
那么,光纤网卡这个称呼到底是不是指光纤口HBA卡呢?
实际上大家常说的光纤网卡指的就是光纤通道网络里的HBA卡。
因传输协议的不同的,网卡可分为三种,一是以太网卡,二是FC网卡,三是iSCSI网卡。
以太网卡:学名Ethernet Adapter,传输协议为IP协议,一般通过光纤线缆或双绞线与以太网交换机连接。接口类型分为光口和电口。光口一