====== OCFS2 (Oracle Cluster File System 2) ====== OCFS2 ist seit Kernel 2.6.19 stabil (eingeführt 2005) Bei OCFS2 handelt es sich um ein Open-Source Cluster-Dateisystem von der Firma Oracle für Linux, welches in einem Computercluster konkurrierenden Zugriff auf eine Shared Storage ermöglicht. OCFS2 unterstützt keine ACLs, die Unterstützung erweiterter Attribute und SELINUX ist geplant.\\ OCFS2 beherrscht gleichzeitig den gepufferten und ungepufferten ("O_DIRECT") Zugriff.\\ WAN-Tauglich ist es nicht => **//lower latency is highly recommended//** OCFS2 is a general purpose extent based shared disk cluster file system with many similarities to ext3. It supports 64 bit inode numbers, and has automatically extending metadata groups which may also make it attractive for non-clustered use. * [[http://oss.oracle.com/projects/ocfs2]] * [[http://oss.oracle.com/projects/ocfs2-tools]] * [[http://oss.oracle.com/projects/ocfs2/mailman/]] * **[[https://docs.oracle.com/en/operating-systems/oracle-linux/6/admin/ol_instcfg_ocfs2.html|Installing and Configuring OCFS2]]** ===== Stand: 2024-01-22 / Ubuntu 22.04.3 LTS ===== * [[https://www.oracle.com/us/technologies/linux/ocfs2-best-practices-2133130.pdf]] o2cb add-heartbeat share_ocfs2 /dev/sdc1 o2cb heartbeat-mode share_ocfs2 local dpkg-reconfigure ocfs2-tools service o2cb stop service o2cb start ss -lntp mount /share_test/ echo "stats" | debugfs.ocfs2 -n /dev/sdc1 node: ip_port = 7777 ip_address = 192.168.2.101 number = 0 name = hostname01 cluster = share_ocfs2 node: ip_port = 7777 ip_address = 192.168.2.102 number = 1 name = hostname02 cluster = share_ocfs2 node: ip_port = 7777 ip_address = 192.168.2.103 number = 2 name = hostname03 cluster = share_ocfs2 cluster: name = share_ocfs2 heartbeat_mode = local node_count = 3 ===== Stand: 2016-01-22 / Ubuntu 14.04 ===== * [[http://oss.oracle.com/projects/ocfs2/]] * [[https://oss.oracle.com/projects/ocfs2/dist/documentation/v1.6/ocfs2-1_6-usersguide.pdf]] ==== Konfigurationsbeispiel OCFS"-Cluster ==== > fdisk /dev/vdb > fdisk -l /dev/vdb Disk /dev/vdb: 21.5 GB, 21474836480 bytes 3 Köpfe, 34 Sektoren/Spur, 411206 Zylinder, zusammen 41943040 Sektoren Einheiten = Sektoren von 1 × 512 = 512 Bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Festplattenidentifikation: 0x3dbc6fb1 Gerät boot. Anfang Ende Blöcke Id System /dev/vdb1 2048 41943039 20970496 83 Linux > aptitude -y install ocfs2-tools > mkfs -t ocfs2 -L "share_ocfs2" /dev/vdb1 > echo "LABEL="share_ocfs2" /home ocfs2 defaults,_netdev 0 0" >> /etc/fstab > cp /usr/share/doc/ocfs2-tools/examples/cluster.conf /etc/ocfs2/ > vi /etc/ocfs2/cluster.conf node: ip_port = 7777 ip_address = 192.168.2.101 number = 0 name = hostname01 cluster = share_ocfs2 node: ip_port = 7777 ip_address = 192.168.2.102 number = 1 name = hostname02 cluster = share_ocfs2 node: ip_port = 7777 ip_address = 192.168.2.103 number = 2 name = hostname03 cluster = share_ocfs2 cluster: node_count = 3 name = share_ocfs2 __Bei **''"name = "''** muss die Ausgabe von **''"uname -n"''** angegeben werden!__ # service o2cb configure > dpkg-reconfigure ocfs2-tools Loading filesystem "configfs": OK Mounting configfs filesystem at /sys/kernel/config: OK Loading stack plugin "o2cb": OK Loading filesystem "ocfs2_dlmfs": OK Creating directory '/dlm': OK Mounting ocfs2_dlmfs filesystem at /dlm: OK Setting cluster stack "o2cb": OK Starting O2CB cluster share_ocfs2: OK > service o2cb online Cluster share_ocfs2 already online > /etc/init.d/ocfs2 start Starting Oracle Cluster File System (OCFS2) OK > service o2cb status Driver for "configfs": Loaded Filesystem "configfs": Mounted Stack glue driver: Loaded Stack plugin "o2cb": Loaded Driver for "ocfs2_dlmfs": Loaded Filesystem "ocfs2_dlmfs": Mounted Checking O2CB cluster share_ocfs2: Online Heartbeat dead threshold = 31 Network idle timeout: 30000 Network keepalive delay: 2000 Network reconnect delay: 2000 Checking O2CB heartbeat: Active > cat /etc/default/o2cb # # This is a configuration file for automatic startup of the O2CB # driver. It is generated by running 'dpkg-reconfigure ocfs2-tools'. # Please use that method to modify this file. # # O2CB_ENABLED: 'true' means to load the driver on boot. O2CB_ENABLED=true # O2CB_BOOTCLUSTER: If not empty, the name of a cluster to start. O2CB_BOOTCLUSTER=share_ocfs2 # O2CB_HEARTBEAT_THRESHOLD: Iterations before a node is considered dead. O2CB_HEARTBEAT_THRESHOLD=31 # O2CB_IDLE_TIMEOUT_MS: Time in ms before a network connection is considered dead. O2CB_IDLE_TIMEOUT_MS=30000 # O2CB_KEEPALIVE_DELAY_MS: Max. time in ms before a keepalive packet is sent. O2CB_KEEPALIVE_DELAY_MS=2000 # O2CB_RECONNECT_DELAY_MS: Min. time in ms between connection attempts. O2CB_RECONNECT_DELAY_MS=2000 > tunefs.ocfs2 -Q "Label = %V\nUUID = %U\nNumSlots =%N\n" /dev/sdc1 Label = share_ocfs2 UUID = 74FD5D9EC36F4B5897A47D2F98F8D40D NumSlots =2 > o2info -h > o2info --volinfo /dev/sdc1 > ss -lntp State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 64 192.168.2.101:7777 0.0.0.0:* ===== Stand: 2010-11-10 / Ubuntu 10.04 ===== aptitude install ocfs2-tools ocfs2console Hole:1 http://de.archive.ubuntu.com karmic/main ocfs2-tools 1.4.2-1 [710kB] Hole:2 http://de.archive.ubuntu.com karmic/main python-cairo 1.8.6-1ubuntu1 [105kB] Hole:3 http://de.archive.ubuntu.com karmic/main python-gtk2 2.16.0-0ubuntu1 [1.711kB] Hole:4 http://de.archive.ubuntu.com karmic/main ocfs2console 1.4.2-1 [107kB] http://oss.oracle.com/projects/ocfs2/ http://oss.oracle.com/projects/ocfs2/dist/documentation/ocfs2_faq.html ################################################################################ # O2CB - Default cluster stack for the OCFS2 file system. Damit O2CB problemlos funktioniert, sollte man SELINUX und iptables abschalten oder wenigstens modifizieren. Vielleicht wird SELINUX in Zukunft auch unterstützt, wenn das Dateisystem mit erweiterten Attributen umgehen können wird. #aptitude install ocfs2-tools ocfs2console aptitude install ocfs2-tools Die "cluster.conf" ist auf allen Cluster-Knoten die gleiche: cp /usr/share/doc/ocfs2-tools/examples/cluster.conf /etc/ocfs2/ vi /etc/ocfs2/cluster.conf node: ip_port = 7777 ip_address = 10.10.10.1 number = 0 name = hostname1.domain.de cluster = ocfs2cluster node: ip_port = 7777 ip_address = 10.10.10.2 number = 1 name = hostname2 cluster = ocfs2cluster cluster: node_count = 2 name = ocfs2cluster mkfs.ocfs2 -L "ocfs2cluster" /dev/sda1 fsck.ocfs2 -f -r 2 /dev/sda1 vi /etc/fstab /dev/sda1 /dir ocfs2 _netdev 0 0 ### O2CB Cluster Timeout Configuration # ### RedHat # service o2cb configure # ### Debian dpkg-reconfigure ocfs2-tools /etc/init.d/o2cb start /etc/init.d/o2cb status /etc/init.d/ocfs2 start /etc/init.d/ocfs2 status ln -s /etc/init.d/o2cb /etc/rc2.d/S98o2cb ln -s /etc/init.d/o2cb /etc/rc3.d/S98o2cb ln -s /etc/init.d/o2cb /etc/rc4.d/S98o2cb ln -s /etc/init.d/o2cb /etc/rc5.d/S98o2cb ln -s /etc/init.d/o2cb /etc/rc0.d/K01o2cb ln -s /etc/init.d/o2cb /etc/rc1.d/K01o2cb ln -s /etc/init.d/o2cb /etc/rc6.d/K01o2cb ln -s /etc/init.d/ocfs2 /etc/rc2.d/S99ocfs2 ln -s /etc/init.d/ocfs2 /etc/rc3.d/S99ocfs2 ln -s /etc/init.d/ocfs2 /etc/rc4.d/S99ocfs2 ln -s /etc/init.d/ocfs2 /etc/rc5.d/S99ocfs2 ln -s /etc/init.d/ocfs2 /etc/rc0.d/K00ocfs2 ln -s /etc/init.d/ocfs2 /etc/rc1.d/K00ocfs2 ln -s /etc/init.d/ocfs2 /etc/rc6.d/K00ocfs2 # # ODER # #update-rc.d o2cb start 98 2 3 4 5 . stop 01 0 1 6 . #update-rc.d ocfs2 start 98 2 3 4 5 . stop 01 0 1 6 . # # ODER # #aptitude install chkconfig lsb-base #chkconfig -a o2cb #chkconfig -s o2cb on #chkconfig -a ocfs2 #chkconfig -s ocfs2 on ################################################################################ To manually enable panic on oops and set a 30 sec timeout for reboot on panic, do: $ echo 1 > /proc/sys/kernel/panic_on_oops $ echo 30 > /proc/sys/kernel/panic To enable the above on every reboot, add the following to /etc/sysctl.conf: kernel.panic_on_oops = 1 kernel.panic = 30