петък, 19 февруари 2016 г.

Обновяване на Open vSwitch


Днес реших да обновя версията на Open vSwitch в домашният ми лаб от 2.3.0 на 2.4.0 при което при стартиране на ovs-vswitchd демона получих няколко предупреждения:

2016-02-19T19:55:41Z|00005|ovsdb_idl|WARN|Open_vSwitch database lacks AutoAttach table (database needs upgrade?)
2016-02-19T19:55:41Z|00006|ovsdb_idl|WARN|Bridge table in Open_vSwitch database lacks auto_attach column (database needs upgrade?)
2016-02-19T19:55:41Z|00007|ovsdb_idl|WARN|Bridge table in Open_vSwitch database lacks datapath_version column (database needs upgrade?)
2016-02-19T19:55:41Z|00008|ovsdb_idl|WARN|Bridge table in Open_vSwitch database lacks mcast_snooping_enable column (database needs upgrade?)
2016-02-19T19:55:41Z|00009|ovsdb_idl|WARN|Bridge table in Open_vSwitch database lacks rstp_enable column (database needs upgrade?)
2016-02-19T19:55:41Z|00010|ovsdb_idl|WARN|Bridge table in Open_vSwitch database lacks rstp_status column (database needs upgrade?)
2016-02-19T19:55:41Z|00011|ovsdb_idl|WARN|IPFIX table in Open_vSwitch database lacks other_config column (database needs upgrade?)
2016-02-19T19:55:41Z|00012|ovsdb_idl|WARN|Interface table in Open_vSwitch database lacks error column (database needs upgrade?)
2016-02-19T19:55:41Z|00013|ovsdb_idl|WARN|Interface table in Open_vSwitch database lacks lldp column (database needs upgrade?)
2016-02-19T19:55:41Z|00014|ovsdb_idl|WARN|Open_vSwitch table in Open_vSwitch database lacks datapath_types column (database needs upgrade?)
2016-02-19T19:55:41Z|00015|ovsdb_idl|WARN|Open_vSwitch table in Open_vSwitвch database lacks iface_types column (database needs upgrade?)
2016-02-19T19:55:41Z|00016|ovsdb_idl|WARN|Port table in Open_vSwitch database lacks bond_active_slave column (database needs upgrade?)
2016-02-19T19:55:41Z|00017|ovsdb_idl|WARN|Port table in Open_vSwitch database lacks rstp_statistics column (database needs upgrade?)
2016-02-19T19:55:41Z|00018|ovsdb_idl|WARN|Port table in Open_vSwitch database lacks rstp_status column (database needs upgrade?)


Все пак суича се стартира нормално, но все пак реших да видя дали мога да обновя и базата. В пакета на Open vSwitch има един инструмент за манипулиране на базата - ovsdb-tool, който може да обнови базата до новата db schema. То става по този начин:

ovsdb-tool src.db schema dst.db

Най-лесният начин да разберете каде се намира в момента работното копие на базата е като покажете помощната информация към ovsdb-tool-а:

ovsdb-tool --help

Той показва освен какви команди и аргументи поддържа инструмента, но и също така местоположението на базата и на схемата.

Процедуарата е следната:
 1. спирате Open vSwitch  демона и сървъра на базата(ovsdb-server);
 2. обновявате базата, например:
  ovsdb-tool convert /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema /usr/local/etc/openvswitch/conf.db-new

3. преименувате стария файл на базата, например на conf.db-old и преименувате новият файл от conf.db-new na conf.db
4. стартирате Open vSwitch отново.

Вече ги няма предупрежденията за липсващи полета в базата.