1、rbd模块加载
module_init(rbd_init);
加载过程:
1、检查兼容性;
2、创建slab缓存;
rbd_img_request_cache
rbd_obj_request_cache
rbd_segment_name_cache
3、创建延迟工作队列;
RBD_DRV_NAME,是工作队列名称,也是rescuer线程名称
WQ_MEM_RECLAIM,多创建了一个rescuer线程,保证在任何内存压力之下至少有一个执行上下文
0,WQ_DFL_ACTIVE,决定了一个 wq 在同一时刻最多有几个per-CPU执行上下文
4、判断是否为所有rbd块使用唯一的主设备号,默认不使用唯一主设备号;
major number:表示不同的设备类型
minor number:表示同一个设备的的不同分区
5、注册设备,注册总线
2、rbd模块卸载
1、释放ida;
IDR based id allocator, use when translation from id to pointer isn't necessary.
2、注销总线;
3、注销设备;
4、释放工作队列;
5、释放slab缓存;