
iscsi
kjtt_kjtt
这个作者很懒,什么都没留下…
展开
-
open-iscsi源码分析-日志处理(二)
在iscsid主函数中有: log_pid = log_init(program_name, DEFAULT_AREA_SIZE, daemonize ? log_do_log_daemon : log_do_log_std, NULL); 初始化日志系统,现在进入log_init函数,对open-iscsi的日志处理方式进行详细分析: /*转载 2014-08-18 15:26:01 · 681 阅读 · 0 评论 -
open-iscsi源码分析-iscsid(一)
最近用到open-iscsi作用initiator,遇到很多问题,就打算粗率对open-iscsi的源码进行一个分析。 open-iscsi的组成和用法就不讲了,源码包中的README说得非常清楚,主要分为驱动和用户态两部分,用户态又分为服务守护进程和管理程序,必须先加载驱动,守护进程才能启动成功,最后才是运行iscsiadm进行一些常规管理。 今天首先对open-is转载 2014-08-18 15:27:04 · 1041 阅读 · 0 评论 -
open-iscsi源码分析-流程详细分析(三)
在iscsid.c文件的main函数中,有:sysfs_init();这个函数主要是获取系统sys目录://获取sys目录int sysfs_init(void){const char *env;/*从环境变量中获取sys路径*/env = getenv("SYSFS_PATH");if (env) {strlcpy(sysfs_path转载 2014-08-18 15:23:50 · 1411 阅读 · 0 评论 -
IP网络存储iSCSI之一iSCS的概念、组成及工作原理
一、iscsi的概念(zhua)iscsi,即internet SCSI,是IETF制订的一项标准,用于将SCSI数据块映射为以太网数据包。iscsi技术最初由cisco和ibm两家公司开发,并且得到了广大IP存储技术爱好者的大力支持,这几年得到迅速的发展壮大。iscsi的优势主要表现为:首先,iscsi没用tcp/ip协议,而tcp/ip是在网络方面最通用、最成熟的协议,且ip网转载 2014-08-18 14:00:21 · 2767 阅读 · 0 评论 -
open-iscsi源码分析-list-head分析(五)
list-head结构在linux内核中用得非常多,这是一个双向链表结构,可以灵活嵌入其他数据结构中,对于建立链表非常方便。在Linux内核中,由于很多数据结构都需要连成一个链表进行管理,所以有了list-head将链表的管理独立出来,所以在内核编程不需要自己实现list-head的一些管理函数,可以直接调用。 在open-iscsi用户态编程时,将这个文件从内核中拷贝出来了:转载 2014-08-18 15:28:49 · 444 阅读 · 0 评论 -
open-iscsi源码分析-会话建立(六)
前面可以看出,处理控制中心还是iscsid守护进程,其他进程都是向它发出服务请求,然后它做出响应,而它完成一些操作又是向底层驱动发出指令。在前面的源码中可以发现,重要是一个mgmt_ipc_functions的函数指针数组是一个操作函数集合,其中的函数分别处理不同的服务,服务id就是它在函数指针数组中的索引。/*不同任务id对应的处理函数地址*/static mgmt_ipc_fn_t转载 2014-08-18 15:28:35 · 1437 阅读 · 0 评论 -
open-iscsi源码分析-进程通信(四)
前面分析了open-iscsi主要有一个守护进程iscsid,即通过本地socket和用户其他进程通信,比如iscsiadm管理执行任务时,需要和iscsid通信,iscsi的底层驱动则通过netlink和iscsid通信,而用户态其他进程还通过共享内存和iscsid日志守护进程通信。所以在iscsi服务启动后,我们会发现在系统中有两个名为iscsid的进程,其中一个为日志守护进程,另一个转载 2014-08-18 15:28:15 · 875 阅读 · 0 评论