T086ѧϰ�� | վ��ѧԺ | �����ĵ� | ���� | Ъ���� | IP��ַ��ѯ | �������� | ���ջ��� | �����ֵ� | ���ù��� | ������Ϣ��ѯ

Linux��־�ļ�ϵͳ�����ܷ���

�� ���� ����ʱ�䣺2010-03-27 | ���壺�� �� С��
[����]�����ص��о���Linux���õ���־�ļ�ϵͳ��EXT3��ReiserFS��XFS��JFS��־�����������ñ�׼�IJ��Թ���PostMark�� Bonnie++�����ǽ����˲��ԣ���������ϸ�����ܷ�������Linux������Ӧ�þ�����Ҫ�IJο���ֵ��

��־�ļ�ϵͳ������ϵͳ�����ϵ���������ϵͳ����ʱ��֤�������ݵ������ԣ�Linux��Ŀǰ֧����־�ļ�ϵͳ�����IJ���ϵͳ֮һ�������ص��о���Linux���õ���־�ļ�ϵͳ��EXT3��ReiserFS��XFS��JFS��־�����������ñ�׼�IJ��Թ���PostMark�� Bonnie++�����ǽ����˲��ԣ���������ϸ�����ܷ�������Linux������Ӧ�þ�����Ҫ�IJο���ֵ��
����
����һ������
����
������ν��־�ļ�ϵͳ���ڴ�ͳ�ļ�ϵͳ�Ļ����ϣ������ļ�ϵͳ���ĵ���־��¼����������˼���ǣ����ټ�¼�ļ�ϵͳ�ı仯�������仯���ݼ�¼����־����־�ļ�ϵͳ�ڴ��̷����б�������־��¼��д���������ǶԼ�¼�ļ����в�����������д��������ij��ԭ��(��ϵͳ����)���жϣ�ϵͳ����ʱ����������־��¼���ָ��ж�ǰ��д����������־�ļ�ϵͳ�У����е��ļ�ϵͳ�ı仯������¼����־��ÿ��һ��ʱ�䣬�ļ�ϵͳ�Ὣ���º���Ԫ���ݼ��ļ�����д�����̡��ڶ�Ԫ�������κθı���ǰ���ļ�ϵͳ��������������־��д��һ����Ŀ��������Ŀ����������Ҫ��Щʲô��Ȼ�����޸�Ԫ���ݡ�ĿǰLinux����־�ļ�ϵͳ��Ҫ�У���Ext2�����Ͽ�����Ext3��������������˼�����Ƶ�ReiserFS����SGI IRIXϵͳ��ֲ������XFS����IBM AIXϵͳ��ֲ������JFS������EXT3��ȫ����EXT2�������̽ṹ��EXT2��ȫһ����ֻ�Ǽ�����־���������������ļ�ϵͳ�㷺ʹ����B���������ļ�ϵͳ��Ч�ʡ�
����
��������Ext3
����
����Ext3 �ļ�ϵͳ��ֱ�Ӵ�Ext2�ļ�ϵͳ��չ������ĿǰExt3�ļ�ϵͳ�Ѿ��dz��ȶ��ɿ�������ȫ����Ext2�ļ�ϵͳ���û�����ƽ���ع��ɵ�һ����־���ܽ�ȫ���ļ�ϵͳ��Ext3��־�ļ�ϵͳ��˼�����Ƕ��ļ�ϵͳ���е��κθ߼��޸Ķ����������С����ȣ��Ѵ�д����һ��������������־�У����Σ���������־�� I/O ���ݴ�������ʱ���������ύ����־��������д���ļ�ϵͳ���������ļ�ϵͳ��I/O ���ݴ�����ֹʱ���������ύ���ļ�ϵͳ������־�еĿ鸱���ͱ�������
����
����2.1 Ext3��־ģʽ
����
����Ext3�ȿ���ֻ��Ԫ��������־��Ҳ����ͬʱ���ļ����ݿ�����־��������˵��Ext3�ṩ����������־ģʽ��
����
������־��Journal ��
����
�����ļ�ϵͳ�������ݺ�Ԫ���ݵĸı䶼������־������ģʽ�����˶�ʧÿ���ļ������޸ĵĻ��ᣬ��������Ҫ�ܶ������Ĵ��̷��ʡ����磬��һ�����ļ�������ʱ�������������ݿ鶼���븴��һ����Ϊ��־��¼�������ȫ��������Ext3��־ģʽ��
����
����Ԥ����Ordered ��
����
����ֻ�ж��ļ�ϵͳԪ���ݵĸı��ż�����־��Ȼ����Ext3�ļ�ϵͳ��Ԫ���ݺ����ص����ݿ����з��飬�Ա���Ԫ����д������֮ǰд�����ݿ顣�������Ϳ��Լ����ļ��������𻵵Ļ��᣻���磬ȷ�������ļ����κ�д���ʶ���ȫ����־�ı���������ȱʡ��Ext3 ��־ģʽ��
����
����д�أ�Writeback ��
����
����ֻ�ж��ļ�ϵͳԪ���ݵĸı��ż�����־��������������־�ļ�ϵͳ���ֵķ�����Ҳ��������ģʽ��
����
����2.2 ��־���豸��JBD��
����
����Ext3 �ļ�ϵͳ������������־������������־���豸��Journaling Block Device������JBD ��ͨ���ں˲㡣Ext3�ļ�ϵͳ����JDB������ȷ����ϵͳ��һ���ֹ���ʱ���ĺ������������𻵴������ݽṹ��Ext3 ��JDB ֮���Ľ��������ϻ�������������Ԫ����־��¼��ԭ�Ӳ�����������
����
������־��¼���������ļ�ϵͳ��Ҫ�����ĵͼ���������������ijЩ��־�ļ�ϵͳ�У���־��¼ֻ�����������޸ĵ��ֽڷ�Χ���ֽ����ļ�ϵͳ�е���ʼλ�á�Ȼ����JDB ��ʹ�õ���־��¼�ɵͼ��������޸ĵ��������������ɡ����ַ�ʽ�����˷Ѻܶ���־�ռ䣨���磬���ͼ����������ı�λͼ��һ��λʱ�������ǣ��������൱���ģ���ΪJBD ��ֱ�ӶԻ������ͻ������ײ����в�����
����
�����޸��ļ�ϵͳ����һϵͳ���ö�ͨ������Ϊ���ݴ������ݽṹ��һϵ�еͼ�������������Щ�ͼ�������û��ȫ������ϵͳ������崻����ͻ��𻵴������ݡ�Ϊ�˷�ֹ�����𻵣�Ext3�ļ�ϵͳ����ȷ��ÿ��ϵͳ������ԭ�ӵķ�ʽ���д�����ԭ�Ӳ����ǶԴ������ݽṹ��һ���ͼ������������ͼ�������Ӧһ�������ĸ߼�������
����
��������Ч�ʵ�ԭ����JBD ������־�Ĵ������÷����ķ������������ڼ���ԭ�Ӳ�����������־��¼��������һ�������������С����⣬��һ���������ص�������־��¼������������ͬһ�������С�һ��������������־��¼����������־���������С�JBD����ÿ��������Ϊ���������������磬ֻ�е�������һ����������־��¼�е����������ύ���ļ�ϵͳʱ�Ż��ո�������ʹ�õĿ顣
����
��������ReiserFS
����
����ReiserFS ��һ���dz��������ļ�ϵͳ���俪���߷dz��������������ļ�ϵͳ��ȫ�Ǵ�ͷ���Ƶġ�Ŀǰ��ReiserFS�����ɹ����ϰ�G���ļ�ϵͳ��������ҵ��Ӧ���зdz���Ҫ��ReiserFS �Ǹ�������������˼�����Ƶģ��������㣨semantic layer)�ʹ洢�㣨storage layer)���ɡ���������Ҫ�ǶԶ��������ռ��Ĺ����������ӿڵĶ��壬��ȷ�������Ĺ��ܡ��洢����Ҫ�ǶԴ��̿ռ��Ĺ��������������洢����ͨ������key����ϵ�ġ�������ͨ���Զ��������н������ɼ����洢��ͨ�����ҵ������ڴ����ϴ洢�ռ䣬��ֵ��ȫ��Ψһ�ġ�
����
����3.1 ��������Ҫ�ӿ�
����
����1) �ļ��ӿ� ÿ���ļ�ӵ��һ���ӿ�ID����ID��ʶһ�����������˷�������������ReiserFS �ļ������нӿڡ�
����
����2) ���Խӿ� ReiserFSʵ����һ���½ӿڣ����ļ���ÿһ�����Ե���һ���ļ������Ե�ֵ���Ǵ��ļ������ݣ���ʵ�ֶ��ļ����Ե�Ŀ¼ʽ���ʡ�
����
����3) hash�ӿ� Ŀ¼���ļ������ļ���ӳ������ReiserFS��ͨ��B������ʵ������ӳ�����������ļ����DZ䳤�ģ�������ʱ�ļ������ܳ��������ļ������ʺ���Ϊ��ֵ����������Hash������������ֵ��
����
����4) ��ȫ�ӿ� ��ȫ�ӿڴ������еİ�ȫ�Լ��飬ͨ�������ļ��ӿڴ����ġ������Զ��ļ�Ϊ�����ļ��ӿڵ�read �����ڶ����ļ�����֮ǰ�����ð�ȫ�ӿڵ�read chech �����������а�ȫ�Լ���,�������ֻ����������ļ���read�������ļ����Զ����Ա����顣
����
����5) �Item���ӿ� ���ӿ���Ҫ��һЩ��������ƽ�⴦���ķ��������������IJ��֣��������������ĸ�д������׷�ӣ�����ɾ�������뼰���ҡ�
����
����6) �����䣨key Assignment���ӿ� ����һ����������һ����ʱ���������ӿھͻᱻ������ÿһ�����һ��������Ӧ�ļ����䷽����
����
����3.2 �洢��
����
����ReiserFS����B+�����洢���ݵ�,���ṹ��ͼ��
����
����ͼ1��ReiserFS B+ ��
����

��


������B+���еĸ�����������һ����Ϊ�Item�������ݽṹ������һ������������һ����ֻ����һ�����㣬�ǽ��������ռ��Ļ�����λ����ͼ��ʾ��һ���������������ݣ�
����
����1) Item_body������������
����
����2) Item_key�� ���ļ�ֵ
����
����3) Item_offset���������������ڽ����е�ƫ����
����
����4) Item_length�� �������ij���
����
����5) Item_Plugin_id�����ӿ�ID��
����
����ͼ2�� ReiserFS ���ṹ
����

��


����ReiserFS�����˶��ֲ�ͬ�����Դ洢��ͬ�����ݣ���Ҫ�����¼��֣�
����
����1) static_stat_data�� ��̬ͳ�����ݣ������ļ��������ߣ�����Ȩ�ޣ�����ʱ�䣬�����޸�ʱ�䣬��������
����
����2) cmpnd_dir_item�� ��������Ŀ¼��
����
����3) extend_pointers�� ָ��һ��������extend��
����
����4) node_pointers�� ָ��һ������
����
����5) bodies�� ���������ļ���С��������
����
����3.3 ReiserFS��־
����
������ext3 һ����ReiserFSҲ��������־ģʽ����journal,ordered,writeback��ͬʱ��ReiserFS������������־�Ż������� copy-on-capture��steal-on-capture��copy-on-capture:��һ������Ҫ�޸ĵĿ�����һ��δ�ύ��������ʱ���Ͱ������鸴��һ�ݣ����������������Ϳ��Բ��������ˡ�steal-on-capture����һ���鱻���������޸�ʱ��ֻ�������ύ���Ǹ������Ű�������ʵ��д���ļ�ϵͳ���������񶼲�д�����顣
����
�����ġ�XFS
����
����XFS ��һ�ָ����ܵ�64 λ�ļ�ϵͳ����SGI ��˾Ϊ������ԭ�е�EFS �ļ�ϵͳ�������ġ�XFS ͨ������cache ��һ���ԡ���λ���ݺͷֲ����������������ṩ���ļ�ϵͳ���ݵĵ��ӳ١��ߴ����ķ��ʡ�ĿǰSGI�Ѿ���XFS�ļ�ϵͳ��IRIX��ֲ��Linux��
����
����4.1 �����飨allocation groups��
����
���������� XFS �ļ�ϵͳʱ���ײ����豸���ָ��ɰ˸�����������С���ȵ�����������region�����û����Խ�����������"��"��chunk������"���Է�Χ��range��"���� XFS �У�ÿ��������Ϊһ��"������"����������Ψһ�ģ���Ϊÿ�������������Լ��������ڵ㣨inode���Ϳ��пռ䣬ʵ�����ǽ���Щ������ת��Ϊһ���ļ���ϵͳ����Щ��ϵͳ͸���ش����� XFS �ļ�ϵͳ�ڡ����˷����飬XFS ���뽫���������̺߳ͽ��̳����Բ��з�ʽ���У���ʹ�����е������̺߳ͽ�������ͬһ�ļ�ϵͳ��ִ�д���ģ IO ���������ˣ��� XFS ��ijЩ�߶�Ӳ�������ϣ������ø����ܶ�����ʹ�ļ�ϵͳ��Ϊƿ�������������ڲ�ʹ�ø�Ч�� B+����������Ҫ���ݣ�������Խ���ܺͼ����Ŀ���չ�ԡ�
����
����4.2 ��־��¼
����
����XFS Ҳ��һ����־��¼�ļ�ϵͳ�����������������������Ŀ��ٻָ����� ReiserFS һ����XFS ʹ���߼���־�������� ext3 �����������ļ�ϵͳ����¼����־������ʹ��һ�ָ�Ч�Ĵ��̸�ʽ����¼Ԫ���ݵı䶯���� XFS ���ԣ��߼���־��¼�Ǻ��ʺϵģ��ڸ߶�Ӳ���ϣ���־�����������ļ�ϵͳ�����á�

  • ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
  • �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
������ѯ Health Check Gulangyu
© 2017 T086ѧϰ�� - T086.com(ԭitlearner.com)
RunTime:6.44ms QueryTime:7