Gilad Chaplik has uploaded a new change for review.

Change subject: Utility methods and conf for blkio limits MOM integration
......................................................................

Utility methods and conf for blkio limits MOM integration

Adding a MOM policy to monitor blkio tuning parameter.
Adding methods to vm.py to gather io tune information from the vm

Change-Id: I43be5627e5365fee1145a75e91fb5b7714e46aaf
Signed-off-by: Gilad Chaplik <[email protected]>
---
M debian/vdsm.install
M lib/vdsm/config.py.in
M lib/vdsm/constants.py.in
M tests/functional/momTests.py
M vdsm/Makefile.am
M vdsm/mom.conf.in
M vdsm/mom.d/00-defines.policy
A vdsm/mom.d/05-blkiotune.policy
M vdsm/virt/vm.py
9 files changed, 48 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/76/28576/1

diff --git a/debian/vdsm.install b/debian/vdsm.install
index 696286d..8f0b1da 100644
--- a/debian/vdsm.install
+++ b/debian/vdsm.install
@@ -18,6 +18,7 @@
 ./etc/vdsm/mom.d/02-balloon.policy
 ./etc/vdsm/mom.d/03-ksm.policy
 ./etc/vdsm/mom.d/04-cputune.policy
+./etc/vdsm/mom.d/05-blkiotune.policy
 ./etc/vdsm/svdsm.logger.conf
 ./etc/vdsm/upgrade.logger.conf
 ./etc/vdsm/vdsm-tmpfiles.conf
diff --git a/lib/vdsm/config.py.in b/lib/vdsm/config.py.in
index 194cbd7..f12de74 100644
--- a/lib/vdsm/config.py.in
+++ b/lib/vdsm/config.py.in
@@ -174,6 +174,10 @@
 
         ('vm_sample_cpu_tune_window', '2', None),
 
+        ('vm_sample_blkio_tune_interval', '15', None),
+
+        ('vm_sample_blkio_tune_window', '2', None),
+
         ('trust_store_path', '@TRUSTSTORE@',
             'Where the certificates and keys are situated.'),
 
diff --git a/lib/vdsm/constants.py.in b/lib/vdsm/constants.py.in
index e8c193a..1954971 100644
--- a/lib/vdsm/constants.py.in
+++ b/lib/vdsm/constants.py.in
@@ -51,6 +51,8 @@
 
 # The Metadata URI for VM Cpu tunables
 METADATA_VM_CPU_TUNE_URI = 'http://ovirt.org/vm/tune/1.0'
+# The Metadata URI for VM Device tunables
+METADATA_VM_DEVICE_TUNE_URI = 'http://ovirt.org/vm/device/tune/1.0'
 
 # This is the domain version translation list
 # DO NOT CHANGE OLD VALUES ONLY APPEND
diff --git a/tests/functional/momTests.py b/tests/functional/momTests.py
index 62036cf..33b1f9d 100644
--- a/tests/functional/momTests.py
+++ b/tests/functional/momTests.py
@@ -130,6 +130,20 @@
                 vcpuPeriod)
             self.assertEqual(status, SUCCESS, msg)
 
+    def _setBlkIoTune(self, disk, blkioMap):
+        # Get disk's statistics before the operation.
+#        TODO
+        self.assertEqual(status, SUCCESS, msg)
+
+        candidateStats = filter(self._statsOK, statsList)
+
+        for stats in candidateStats:
+            status, msg = self.s.setDiskBlkioTuneMap(
+                stats['vmId'],
+                disk,
+                #TODO#)
+            self.assertEqual(status, SUCCESS, msg)
+
     def _setPolicy(self, policy):
         curpath = os.path.dirname(__file__)
         file_name = os.path.join(curpath, policy)
diff --git a/vdsm/Makefile.am b/vdsm/Makefile.am
index 3d6ac9c..de43bb1 100644
--- a/vdsm/Makefile.am
+++ b/vdsm/Makefile.am
@@ -106,6 +106,7 @@
        mom.d/02-balloon.policy \
        mom.d/03-ksm.policy \
        mom.d/04-cputune.policy \
+       mom.d/05-blkiotune.policy \
        sourceRoute.sh \
        sudoers.vdsm.in \
        svdsm.logger.conf.in \
diff --git a/vdsm/mom.conf.in b/vdsm/mom.conf.in
index c850fff..3d4736b 100644
--- a/vdsm/mom.conf.in
+++ b/vdsm/mom.conf.in
@@ -25,7 +25,7 @@
 policy-engine-interval: 10
 
 # A comma-separated list of Controller plugins to enable
-controllers: Balloon, KSM, CpuTune
+controllers: Balloon, KSM, CpuTune, BlkIoTune
 
 # Sets the maximum number of statistic samples to keep for the purpose of
 # calculating moving averages.
diff --git a/vdsm/mom.d/00-defines.policy b/vdsm/mom.d/00-defines.policy
index 1d98990..ca6763f 100644
--- a/vdsm/mom.d/00-defines.policy
+++ b/vdsm/mom.d/00-defines.policy
@@ -7,4 +7,5 @@
 (defvar ksmEnabled 1)
 (defvar balloonEnabled 0)
 (defvar cpuTuneEnabled 0)
+(defvar blkIoTuneEnabled 0)
 
diff --git a/vdsm/mom.d/05-blkiotune.policy b/vdsm/mom.d/05-blkiotune.policy
new file mode 100644
index 0000000..c71f0fb
--- /dev/null
+++ b/vdsm/mom.d/05-blkiotune.policy
@@ -0,0 +1,3 @@
+### Auto-blkioTune 
###############################################################
+#
+#TODO
diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index 20d823a..5c6db33 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -204,11 +204,16 @@
                 self._sampleCpuTune,
                 config.getint('vars', 'vm_sample_cpu_tune_interval'),
                 config.getint('vars', 'vm_sample_cpu_tune_window')))
+        self.sampleBlkIoTune = (
+            sampling.AdvancedStatsFunction(
+                self._sampleBlkIoTune,
+                config.getint('vars', 'vm_sample_blkio_tune_interval'),
+                config.getint('vars', 'vm_sample_blkio_tune_window')))
 
         self.addStatsFunction(
             self.highWrite, self.updateVolumes, self.sampleCpu,
             self.sampleDisk, self.sampleDiskLatency, self.sampleNet,
-            self.sampleBalloon, self.sampleCpuTune)
+            self.sampleBalloon, self.sampleCpuTune, self.sampleBlkIoTune)
 
     def _highWrite(self):
         if not self._vm.isDisksStatsCollectionEnabled():
@@ -280,6 +285,11 @@
             value = nodeList[0].childNodes[0].data
 
         infos['vcpuLimit'] = value
+        return infos
+
+    def _sampleBlkIoTune(self):
+        infos = self._dom.schedulerParameters()
+        #TODO _getDiskBlkioTuneMap(self, disk, stats)
         return infos
 
     def _diff(self, prev, curr, val):
@@ -374,6 +384,14 @@
             self.log.debug('Domain Metadata is not set')
             ret['vcpu_user_limit'] = 100
 
+        stats.update(ret)
+
+    def _getBlkIoTuneInfo(self, stats):
+        #TODO
+        stats.update(ret)
+
+    def _getUserBlkIoTuneInfo(self, disk, stats):
+        #TODO
         stats.update(ret)
 
     @classmethod
@@ -505,6 +523,8 @@
         self._getCpuTuneInfo(stats)
         self._getCpuCount(stats)
         self._getUserCpuTuneInfo(stats)
+        self._getBlkIoTuneInfo(stats)
+        self._getUserBlkIoTuneInfo(stats)
 
         return stats
 


-- 
To view, visit http://gerrit.ovirt.org/28576
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I43be5627e5365fee1145a75e91fb5b7714e46aaf
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Gilad Chaplik <[email protected]>
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to