------=ALIBOUNDARY_54603_493d9940_568114ce_5020f
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64
aG9zdMKgeHh4wqBkaWTCoG5vwqBzYXRpc2Z5wqBpbnRlcm5hbMKgZmlsdGVywqBNZW1vcnnCoGJl
Y2F1c2XCoGl0c8Kgc3dhcMKgdmFsdWXCoHdhc8KgaWxsZWdhbC4jIyPCoERlc2NyaXB0aW9uwqAj
IyMxLsKgcHJvYmxlbTEpwqBtaWdyYXRlwqB2bcKge25hbWU6eHl6MDAxLMKgbWVtKG1pbizCoG1h
eCnCoD3CoCgyRyw0Ryl9wqBmcm9twqBvdmlydMKgaG9zdMKgbjMzwqB0b8KgbjM0LMKgZmFpbGVk
LjIpwqBzaHV0dGluZ8KgZG93bsKgdm3CoHtuYW1lOsKgdGVzdDAwMSzCoG1lbShtaW4swqBtYXgp
wqA9wqAoMUcsMUcpfcKgb27CoG4zNCzCoHVwZGF0ZcKgdGVzdDAwMSdzwqBjb25maWc6wqBIb3N0
LT5TdGFydMKgUnVubmluZ8KgT246wqBTcGVjaWZpYyhuMzQpLMKgdGhlbsKgc3RhcnTCoHRlc3Qw
MDEswqB3aGlsZSzCoGl0J3PCoHJ1bm5pbmfCoG9uwqBuMzMuMi7CoGVycsKgbWVzc2FnZcKgRXJy
b3LCoHdoaWxlwqBleGVjdXRpbmfCoGFjdGlvbjrCoG1pZ3JhdGXCoFtlbmdpbmXCoGd1aV14eXow
MDE6Q2Fubm90wqBtaWdyYXRlwqBWTS7CoFRoZXJlwqBpc8Kgbm/CoGhvc3TCoHRoYXTCoHNhdGlz
Zmllc8KgY3VycmVudMKgc2NoZWR1bGluZ8KgY29uc3RyYWludHMuwqBTZWXCoGJlbG93wqBmb3LC
oGRldGFpbHM6VGhlwqBob3N0wqBuMzMub3ZpcnTCoGRpZMKgbm90wqBzYXRpc2Z5wqBpbnRlcm5h
bMKgZmlsdGVywqBNZW1vcnnCoGJlY2F1c2XCoGhhc8KgYXZhaWxhYmXCoDE4NjPCoE1CwqBtZW1v
cnkuwqBJbnN1ZmZpY2llbnTCoGZyZWXCoG1lbW9yecKgdG/CoHJ1bsKgdGhlwqBWTS5UaGXCoGhv
c3TCoG4zNC5vdmlydMKgZGlkwqBub3TCoHNhdGlzZnnCoGludGVybmFswqBmaWx0ZXLCoE1lbW9y
ecKgYmVjYXVzZcKgaXRzwqBzd2FwwqB2YWx1ZcKgd2FzwqBpbGxlZ2FsLltlbmdpbmUubG9nXUlO
Rk/CoMKgW29yZy5vdmlydC5lbmdpbmUuY29yZS5ibGwuTWlncmF0ZVZtQ29tbWFuZF3CoChkZWZh
dWx0wqB0YXNrLTIzKcKgWzU5MTZhYTNiXcKgTG9ja8KgQWNxdWlyZWTCoHRvwqBvYmplY3TCoCdF
bmdpbmVMb2NrOntleGNsdXNpdmVMb2Nrcz0nWzczMzUxODg1LTlhOTItNDMxNy1iYWFmLWU0ZjJi
ZWQxMTcxYT08Vk0swqBBQ1RJT05fVFlQRV9GQUlMRURfVk1fSVNfQkVJTkdfTUlHUkFURUQkVm1O
YW1lwqB0ZXN0MTE+XScswqBzaGFyZWRMb2Nrcz0nbnVsbCd9J0lORk/CoMKgW29yZy5vdmlydC5l
bmdpbmUuY29yZS5ibGwuc2NoZWR1bGluZy5TY2hlZHVsaW5nTWFuYWdlcl3CoChkZWZhdWx0wqB0
YXNrLTIzKcKgWzU5MTZhYTNiXcKgQ2FuZGlkYXRlwqBob3N0wqAnbjM0J8KgKCcyYWUzYTIxOS1h
ZTlhLTQzNDctYjFlMi0wZTEwMDM2MDIzMWUnKcKgd2FzwqBmaWx0ZXJlZMKgb3V0wqBiecKgJ1ZB
Ul9fRklMVEVSVFlQRV9fSU5URVJOQUwnwqBmaWx0ZXLCoCdNZW1vcnknwqAoY29ycmVsYXRpb27C
oGlkOsKgbnVsbClJTkZPwqDCoFtvcmcub3ZpcnQuZW5naW5lLmNvcmUuYmxsLnNjaGVkdWxpbmcu
U2NoZWR1bGluZ01hbmFnZXJdwqAoZGVmYXVsdMKgdGFzay0yMynCoFs1OTE2YWEzYl3CoENhbmRp
ZGF0ZcKgaG9zdMKgJ24zMyfCoCgnNjg4YWVjMzQtNTYzMC00NzhlLWFlNWUtOWQ1Nzk5MDgwNGU1
JynCoHdhc8KgZmlsdGVyZWTCoG91dMKgYnnCoCdWQVJfX0ZJTFRFUlRZUEVfX0lOVEVSTkFMJ8Kg
ZmlsdGVywqAnTWVtb3J5J8KgKGNvcnJlbGF0aW9uwqBpZDrCoG51bGwpV0FSTsKgwqBbb3JnLm92
aXJ0LmVuZ2luZS5jb3JlLmJsbC5NaWdyYXRlVm1Db21tYW5kXcKgKGRlZmF1bHTCoHRhc2stMjMp
wqBbNTkxNmFhM2JdwqBDYW5Eb0FjdGlvbsKgb2bCoGFjdGlvbsKgJ01pZ3JhdGVWbSfCoGZhaWxl
ZMKgZm9ywqB1c2VywqBhZG1pbkBpbnRlcm5hbC7CoFJlYXNvbnM6wqBWQVJfX0FDVElPTl9fTUlH
UkFURSxWQVJfX1RZUEVfX1ZNLFNDSEVEVUxJTkdfQUxMX0hPU1RTX0ZJTFRFUkVEX09VVCxWQVJf
X0ZJTFRFUlRZUEVfX0lOVEVSTkFMLCRob3N0TmFtZcKgbjMzLCRmaWx0ZXJOYW1lwqBNZW1vcnks
JGF2YWlsYWJsZU1lbcKgMTg2MyxWQVJfX0RFVEFJTF9fTk9UX0VOT1VHSF9NRU1PUlksU0NIRURV
TElOR19IT1NUX0ZJTFRFUkVEX1JFQVNPTl9XSVRIX0RFVEFJTCxWQVJfX0ZJTFRFUlRZUEVfX0lO
VEVSTkFMLCRob3N0TmFtZcKgbjM0LCRmaWx0ZXJOYW1lwqBNZW1vcnksVkFSX19ERVRBSUxfX1NX
QVBfVkFMVUVfSUxMRUdBTCxTQ0hFRFVMSU5HX0hPU1RfRklMVEVSRURfUkVBU09OX1dJVEhfREVU
QUlMSU5GT8KgwqBbb3JnLm92aXJ0LmVuZ2luZS5jb3JlLmJsbC5NaWdyYXRlVm1Db21tYW5kXcKg
KGRlZmF1bHTCoHRhc2stMjMpwqBbNTkxNmFhM2JdwqBMb2NrwqBmcmVlZMKgdG/CoG9iamVjdMKg
J0VuZ2luZUxvY2s6e2V4Y2x1c2l2ZUxvY2tzPSdbNzMzNTE4ODUtOWE5Mi00MzE3LWJhYWYtZTRm
MmJlZDExNzFhPTxWTSzCoEFDVElPTl9UWVBFX0ZBSUxFRF9WTV9JU19CRUlOR19NSUdSQVRFRCRW
bU5hbWXCoHRlc3QxMT5dJyzCoHNoYXJlZExvY2tzPSdudWxsJ30nMy7CoERDQ29tcGF0aWJpbGl0
ecKgVmVyc2lvbjrCoDMuNTQuwqBDbHVzdGVyTWVtb3J5wqBPcHRpbWl6YXRpb246wqBGb3LCoFNl
cnZlcsKgTG9hZMKgLcKgQWxsb3fCoHNjaGVkdWxpbmfCoG9mwqAxNTAlwqBvZsKgcGh5c2ljYWzC
oG1lbW9yeU1lbW9yecKgQmFsbG9vbjrCoEVuYWJsZcKgTWVtb3J5wqBCYWxsb29uwqBPcHRpbWl6
YXRpb25FbmFibGXCoEtTTTrCoFNoYXJlwqBtZW1vcnnCoHBhZ2VzwqBhY3Jvc3PCoGFsbMKgYXZh
aWxhYmxlwqBtZW1vcnnCoChiZXN0wqBLU03CoGVmZmVjdGl2bmVzcyk1LsKgSE9TVG5hbWU6wqBu
MzMswqBuMzRtZW06wqAzMkc2LsKgVk1bbjMzXcKgMTHCoHZtcyhtaW4swqBtYXgpwqA9wqAoMkcs
NEcpwqA9wqA4KG1pbizCoG1heCnCoD3CoCgyRyw4RynCoD3CoDEobWluLMKgbWF4KcKgPcKgKDJH
LDJHKcKgPcKgMnRvdGFsOsKgMjJHLzQ0R1tuMzRdwqA3wqB2bXMobWluLMKgbWF4KcKgPcKgKDAu
NUcsMUcpwqA9wqAxKG1pbizCoG1heCnCoD3CoCgxRywyRynCoD3CoDEobWluLMKgbWF4KcKgPcKg
KDJHLDJHKcKgPcKgMShtaW4swqBtYXgpwqA9wqAoMkcsNEcpwqA9wqAzKG1pbizCoG1heCnCoD3C
oCg4Ryw4RynCoD3CoDF0b3RhbDrCoDE3LjVHLzI1Ry0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKG1pbizCoG1heCnCoD3CoCgyRyw0RynCoHN0YW5kc8KgZm9yOsKg
TWVtb3J5wqBTaXplOsKgNEdQaHlzaWNhbMKgTWVtb3J5wqBHdWFyYW50ZWVkOsKgMkdNZW1vcnnC
oEJhbGxvb27CoERldmljZcKgRW5hYmxlZDrCoGNoZWNrZWQtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLTcuwqBycG3CoHZlcnNpb25bcm9vdEBuMzPCoH5dI8KgcnBt
wqAtcWHCoHxncmVwwqB2ZHNtdmRzbS15YWpzb25ycGMtNC4xNi4yNy0wLmVsNi5ub2FyY2h2ZHNt
LWpzb25ycGMtNC4xNi4yNy0wLmVsNi5ub2FyY2h2ZHNtLWNsaS00LjE2LjI3LTAuZWw2Lm5vYXJj
aHZkc20tcHl0aG9uLXpvbWJpZXJlYXBlci00LjE2LjI3LTAuZWw2Lm5vYXJjaHZkc20teG1scnBj
LTQuMTYuMjctMC5lbDYubm9hcmNodmRzbS1weXRob24tNC4xNi4yNy0wLmVsNi5ub2FyY2h2ZHNt
LTQuMTYuMjctMC5lbDYueDg2XzY0W3Jvb3RAZW5naW5lwqB+XSPCoHJwbcKgLXFhwqB8Z3JlcMKg
b3ZpcnRvdmlydC1yZWxlYXNlMzYtMDAxLTIubm9hcmNob3ZpcnQtZW5naW5lLXNldHVwLWJhc2Ut
My42LjAuMy0xLmVsNi5ub2FyY2hvdmlydC1lbmdpbmUtc2V0dXAtMy42LjAuMy0xLmVsNi5ub2Fy
Y2hvdmlydC1pbWFnZS11cGxvYWRlci0zLjYuMC0xLmVsNi5ub2FyY2hvdmlydC1lbmdpbmUtd2ls
ZGZseS04LjIuMC0xLmVsNi54ODZfNjRvdmlydC1lbmdpbmUtc2V0dXAtcGx1Z2luLXZtY29uc29s
ZS1wcm94eS1oZWxwZXItMy42LjAuMy0xLmVsNi5ub2FyY2hvdmlydC1ob3N0LWRlcGxveS0xLjQu
MC0xLmVsNi5ub2FyY2hvdmlydC1lbmdpbmUtYmFja2VuZC0zLjYuMC4zLTEuZWw2Lm5vYXJjaG92
aXJ0LWVuZ2luZS13ZWJhZG1pbi1wb3J0YWwtMy42LjAuMy0xLmVsNi5ub2FyY2hvdmlydC1lbmdp
bmUtamJvc3MtYXMtNy4xLjEtMS5lbDYueDg2XzY0b3ZpcnQtZW5naW5lLWxpYi0zLjYuMC4zLTEu
ZWw2Lm5vYXJjaG92aXJ0LWVuZ2luZS1zZXR1cC1wbHVnaW4tb3ZpcnQtZW5naW5lLWNvbW1vbi0z
LjYuMC4zLTEuZWw2Lm5vYXJjaG92aXJ0LWVuZ2luZS1zZXR1cC1wbHVnaW4tb3ZpcnQtZW5naW5l
LTMuNi4wLjMtMS5lbDYubm9hcmNob3ZpcnQtZW5naW5lLXNldHVwLXBsdWdpbi13ZWJzb2NrZXQt
cHJveHktMy42LjAuMy0xLmVsNi5ub2FyY2hvdmlydC1lbmdpbmUtc2RrLXB5dGhvbi0zLjYuMC4z
LTEuZWw2Lm5vYXJjaG92aXJ0LWlzby11cGxvYWRlci0zLjYuMC0xLmVsNi5ub2FyY2hvdmlydC12
bWNvbnNvbGUtcHJveHktMS4wLjAtMS5lbDYubm9hcmNob3ZpcnQtZW5naW5lLWV4dGVuc2lvbnMt
YXBpLWltcGwtMy42LjAuMy0xLmVsNi5ub2FyY2hvdmlydC1lbmdpbmUtd2Vic29ja2V0LXByb3h5
LTMuNi4wLjMtMS5lbDYubm9hcmNob3ZpcnQtZW5naW5lLXZtY29uc29sZS1wcm94eS1oZWxwZXIt
My42LjAuMy0xLmVsNi5ub2FyY2hlYmF5LWNvcnMtZmlsdGVyLTEuMC4xLTAuMS5vdmlydC5lbDYu
bm9hcmNob3ZpcnQtaG9zdC1kZXBsb3ktamF2YS0xLjQuMC0xLmVsNi5ub2FyY2hvdmlydC1lbmdp
bmUtdG9vbHMtMy42LjAuMy0xLmVsNi5ub2FyY2hvdmlydC1lbmdpbmUtcmVzdGFwaS0zLjYuMC4z
LTEuZWw2Lm5vYXJjaG92aXJ0LWVuZ2luZS0zLjYuMC4zLTEuZWw2Lm5vYXJjaG92aXJ0LWVuZ2lu
ZS1leHRlbnNpb24tYWFhLWpkYmMtMS4wLjEtMS5lbDYubm9hcmNob3ZpcnQtZW5naW5lLWNsaS0z
LjYuMC4xLTEuZWw2Lm5vYXJjaG92aXJ0LXZtY29uc29sZS0xLjAuMC0xLmVsNi5ub2FyY2hvdmly
dC1lbmdpbmUtd2lsZGZseS1vdmVybGF5LTAwMS0yLmVsNi5ub2FyY2hvdmlydC1lbmdpbmUtZGJz
Y3JpcHRzLTMuNi4wLjMtMS5lbDYubm9hcmNob3ZpcnQtZW5naW5lLXVzZXJwb3J0YWwtMy42LjAu
My0xLmVsNi5ub2FyY2hvdmlydC1ndWVzdC10b29scy1pc28tMy42LjAtMC4yX21hc3Rlci5mYzIy
Lm5vYXJjaCMjI8KgRELCoCMjI1tyb290QGVuZ2luZcKgfl0jwqBzdcKgcG9zdGdyZXNiYXNoLTQu
MSTCoGNkwqB+YmFzaC00LjEkwqBwc3FswqBlbmdpbmVlbmdpbmU9I8Kgc2VsZWN0wqB2ZHNfaWQs
wqBwaHlzaWNhbF9tZW1fbWIswqBtZW1fY29tbWl0ZWQswqB2bV9hY3RpdmUswqB2bV9jb3VudCzC
oHJlc2VydmVkX21lbSzCoGd1ZXN0X292ZXJoZWFkLMKgdHJhbnNwYXJlbnRfaHVnZXBhZ2VzX3N0
YXRlLMKgcGVuZGluZ192bWVtX3NpemXCoGZyb23CoHZkc19keW5hbWljO8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgdmRzX2lkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8
wqBwaHlzaWNhbF9tZW1fbWLCoHzCoG1lbV9jb21taXRlZMKgfMKgdm1fYWN0aXZlwqB8wqB2bV9j
b3VudMKgfMKgcmVzZXJ2ZWRfbWVtwqB8wqBndWVzdF9vdmVyaGVhZMKgfMKgdHJhbnNwYXJlbnRf
aHVnZXBhZ2VzX3N0YXRlwqB8wqBwZW5kaW5nX3ZtZW1fc2l6ZcKgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS3CoDY4OGFlYzM0LTU2
MzAtNDc4ZS1hZTVlLTlkNTc5OTA4MDRlNcKgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAzMjA1N8Kg
fMKgwqDCoMKgwqDCoMKgwqA0NTgzNsKgfMKgwqDCoMKgwqDCoMKgwqAxMcKgfMKgwqDCoMKgwqDC
oMKgMTHCoHzCoMKgwqDCoMKgwqDCoMKgwqDCoDMyMcKgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgNjXCoHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAywqB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDDCoDJhZTNhMjE5LWFl
OWEtNDM0Ny1iMWUyLTBlMTAwMzYwMjMxZcKgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAzMjA1N8Kg
fMKgwqDCoMKgwqDCoMKgwqAyNjEyMMKgfMKgwqDCoMKgwqDCoMKgwqDCoDfCoHzCoMKgwqDCoMKg
wqDCoMKgN8KgfMKgwqDCoMKgwqDCoMKgwqDCoMKgMzIxwqB8wqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqA2NcKgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoDLCoHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMCgywqByb3dzKSMj
I8KgbWVtb3J5wqAjIyNbbjMzXSPCoGZyZWXCoC1twqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0
b3RhbMKgwqDCoMKgwqDCoMKgdXNlZMKgwqDCoMKgwqDCoMKgZnJlZcKgwqDCoMKgwqBzaGFyZWTC
oMKgwqDCoGJ1ZmZlcnPCoMKgwqDCoMKgY2FjaGVkTWVtOsKgwqDCoMKgwqDCoMKgwqDCoDMyMDU3
wqDCoMKgwqDCoMKgMzE3NzDCoMKgwqDCoMKgwqDCoMKgMjg3wqDCoMKgwqDCoMKgwqDCoMKgwqAw
wqDCoMKgwqDCoMKgwqDCoMKgNDHCoMKgwqDCoMKgwqDCoDYzNDctLyvCoGJ1ZmZlcnMvY2FjaGU6
wqDCoMKgwqDCoMKgMjUzODHCoMKgwqDCoMKgwqDCoDY2NzZTd2FwOsKgwqDCoMKgwqDCoMKgwqAy
OTk5OcKgwqDCoMKgwqDCoDEwMDI1wqDCoMKgwqDCoMKgMTk5NzRQaHlzaWNhbMKgTWVtb3J5OsKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgMzIw
NTfCoE1CwqB0b3RhbCzCoDI1NjQ2wqBNQsKgdXNlZCzCoDY0MTHCoE1CwqBmcmVlU3dhcMKgU2l6
ZTrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoDI5OTk5wqBNQsKgdG90YWwswqAxMDAyNcKgTULCoHVzZWQswqAxOTk3NMKg
TULCoGZyZWVNYXjCoGZyZWXCoE1lbW9yecKgZm9ywqBzY2hlZHVsaW5nwqBuZXfCoFZNczrCoMKg
wqDCoMKgMTkyOC41wqBNQltuMzRdI8KgZnJlZcKgLW3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oHRvdGFswqDCoMKgwqDCoMKgwqB1c2VkwqDCoMKgwqDCoMKgwqBmcmVlwqDCoMKgwqDCoHNoYXJl
ZMKgwqDCoMKgYnVmZmVyc8KgwqDCoMKgwqBjYWNoZWRNZW06wqDCoMKgwqDCoMKgwqDCoMKgMzIw
NTfCoMKgwqDCoMKgwqAzMTcxM8KgwqDCoMKgwqDCoMKgwqAzNDTCoMKgwqDCoMKgwqDCoMKgwqDC
oDDCoMKgwqDCoMKgwqDCoMKgwqA3OMKgwqDCoMKgwqDCoDEzMDc0LS8rwqBidWZmZXJzL2NhY2hl
OsKgwqDCoMKgwqDCoDE4NTYwwqDCoMKgwqDCoMKgMTM0OTdTd2FwOsKgwqDCoMKgwqDCoMKgwqAy
OTk5OcKgwqDCoMKgwqDCoMKgNTA5OMKgwqDCoMKgwqDCoDI0OTAxUGh5c2ljYWzCoE1lbW9yeTrC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDMy
MDU3wqBNQsKgdG90YWwswqAxODU5M8KgTULCoHVzZWQswqAxMzQ2NMKgTULCoGZyZWVTd2FwwqBT
aXplOsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgMjk5OTnCoE1CwqB0b3RhbCzCoDUwOTjCoE1CwqB1c2VkLMKgMjQ5MDHC
oE1CwqBmcmVlTWF4wqBmcmVlwqBNZW1vcnnCoGZvcsKgc2NoZWR1bGluZ8KgbmV3wqBWTXM6wqDC
oMKgwqDCoDIxNjQ0LjXCoE1CIyMjwqBjb2RlwqAjIyMjI2Zyb206wqBodHRwczovL2dpdGh1Yi5j
b20vb1ZpcnQvb3ZpcnQtZW5naW5ldjMuNi4wIyNmcm9tOsKgRDpcY29kZVxqYXZhXG92aXJ0LWVu
Z2luZVxiYWNrZW5kXG1hbmFnZXJcbW9kdWxlc1xkYWxcc3JjXG1haW5ccmVzb3VyY2VzXGJ1bmRs
ZXNcQXBwRXJyb3JzLnByb3BlcnRpZXNWQVJfX0RFVEFJTF9fU1dBUF9WQUxVRV9JTExFR0FMPSRk
ZXRhaWxNZXNzYWdlwqBpdHPCoHN3YXDCoHZhbHVlwqB3YXPCoGlsbGVnYWwjI2Zyb206wqBEOlxj
b2RlXGphdmFcb3ZpcnQtZW5naW5lXGJhY2tlbmRcbWFuYWdlclxtb2R1bGVzXGJsbFxzcmNcbWFp
blxqYXZhXG9yZ1xvdmlydFxlbmdpbmVcY29yZVxibGxcc2NoZWR1bGluZ1xwb2xpY3l1bml0c1xN
ZW1vcnlQb2xpY3lVbml0LmphdmEjLS0tLS0tLS0tLS1jb2RlLS0tLS0tLS0tLS0tLS0xI8KgwqDC
oMKgcHJpdmF0ZcKgYm9vbGVhbsKgaXNWTVN3YXBWYWx1ZUxlZ2FsKFZEU8KgaG9zdCnCoHvCoMKg
wqDCoMKgwqDCoMKgaWbCoCghQ29uZmlnLjxCb29sZWFuPsKgZ2V0VmFsdWUoQ29uZmlnVmFsdWVz
LkVuYWJsZVN3YXBDaGVjaykpwqB7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoHJldHVybsKgdHJ1ZTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKgwqDC
oChvbWl0dGVkLi4pwqDCoMKgwqDCoMKgwqDCoHJldHVybsKgKChzd2FwX3RvdGFswqAtwqBzd2Fw
X2ZyZWXCoC3CoG1lbV9hdmFpbGFibGUpwqAqwqAxMDDCoC/CoHBoeXNpY2FsX21lbV9tYinCoDw9
wqBDb25maWcuPEludGVnZXI+wqBnZXRWYWx1ZShDb25maWdWYWx1ZXMuQmxvY2tNaWdyYXRpb25P
blN3YXBVc2FnZVBlcmNlbnRhZ2UpwqDCoMKgwqAob21pdHRlZC4uKcKgwqDCoMKgfcKgIy0tLS0t
LS0tLS0tY29kZS0tLS0tLS0tLS0tLS0tMSNpZsKgRW5hYmxlU3dhcENoZWNrwqA9wqBGYWxzZcKg
dGhlbsKgcmV0dXJuwqBUcnVlLMKgc2/CoHdlwqBjYW7CoHNpbXBsecKgZGlzYWJsZcKgdGhpc8Kg
b3B0aW9uP8KgQW55wqBTdWdnZXN0aW9uP1tyb290QGVuZ2luZcKgfl0jwqBlbmdpbmUtY29uZmln
wqAtLWdldMKgQmxvY2tNaWdyYXRpb25PblN3YXBVc2FnZVBlcmNlbnRhZ2VCbG9ja01pZ3JhdGlv
bk9uU3dhcFVzYWdlUGVyY2VudGFnZTrCoDDCoHZlcnNpb246wqBnZW5lcmFsc28sLENvbmZpZy48
SW50ZWdlcj7CoGdldFZhbHVlKENvbmZpZ1ZhbHVlcy5CbG9ja01pZ3JhdGlvbk9uU3dhcFVzYWdl
UGVyY2VudGFnZSnCoD3CoDBzbywsKHN3YXBfdG90YWzCoC3CoHN3YXBfZnJlZcKgLcKgbWVtX2F2
YWlsYWJsZSnCoCrCoDEwMMKgL8KgcGh5c2ljYWxfbWVtX21iwqA8PcKgMHNvLCxzd2FwX3RvdGFs
wqAtwqBzd2FwX2ZyZWXCoC3CoG1lbV9hdmFpbGFibGXCoDw9wqAwcmlnaHQ/c28sLMKgaWbCoChz
d2FwX3RvdGFswqAtwqBzd2FwX2ZyZWUpwqA8PcKgbWVtX2F2YWlsYWJsZcKgdGhlbsKgcmV0dXJu
wqBUcnVlwqBlbHNlwqByZXR1cm7CoEZhbHNlIy0tLS0tLS0tLS0tY29kZS0tLS0tLS0tLS0tLS0t
MiPCoMKgwqDCoMKgwqDCoGZvcsKgKFZEU8KgdmRzwqA6wqBob3N0cynCoHvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqBpZsKgKCFpc1ZNU3dhcFZhbHVlTGVnYWwodmRzKSnCoHvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoGxvZy5kZWJ1ZygiSG9zdMKgJ3t9J8Kgc3dhcMKgdmFsdWXCoGlz
wqBpbGxlZ2FsIizCoHZkcy5nZXROYW1lKCkpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgbWVzc2FnZXMuYWRkTWVzc2FnZSh2ZHMuZ2V0SWQoKSzCoEVuZ2luZU1lc3NhZ2UuVkFSX19E
RVRBSUxfX1NXQVBfVkFMVUVfSUxMRUdBTC50b1N0cmluZygpKTvCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoGNvbnRpbnVlO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqBpZsKgKCFtZW1vcnlDaGVja2VyLmV2YWx1YXRlKHZkcyzCoHZtKSnCoHvC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGludMKgaG9zdEFhdmFpbGFibGVNZW3CoD3C
oFNsYVZhbGlkYXRvci5nZXRJbnN0YW5jZSgpLmdldEhvc3RBdmFpbGFibGVNZW1vcnlMaW1pdCh2
ZHMpO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbG9nLmRlYnVnKCJIb3N0wqAne30n
wqBoYXPCoHt9wqBNQsKgYXZhaWxhYmxlLsKgSW5zdWZmaWNpZW50wqBtZW1vcnnCoHRvwqBydW7C
oHRoZcKgVk0iLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oHZkcy5nZXROYW1lKCkswqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgaG9zdEFhdmFpbGFibGVNZW0pO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
bWVzc2FnZXMuYWRkTWVzc2FnZSh2ZHMuZ2V0SWQoKSzCoFN0cmluZy5mb3JtYXQoIiRhdmFpbGFi
bGVNZW3CoCUxJGQiLMKgaG9zdEFhdmFpbGFibGVNZW0pKTvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoG1lc3NhZ2VzLmFkZE1lc3NhZ2UodmRzLmdldElkKCkswqBFbmdpbmVNZXNzYWdl
LlZBUl9fREVUQUlMX19OT1RfRU5PVUdIX01FTU9SWS50b1N0cmluZygpKTvCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlO8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH3CoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAob21pdHRlZC4uKcKgwqDCoMKgwqDCoMKgwqB9Iy0tLS0tLS0t
LS0tY29kZS0tLS0tLS0tLS0tLS0tMiMhaXNWTVN3YXBWYWx1ZUxlZ2FswqB0aGVuwqB0aHJvd8Kg
ZXhjZXB0aW9uLMKgcmlnaHQ/c28sLMKgd2hlbsKgd2XCoG1pZ3JhdGXCoHZtwqBmcm9twqBuMzPC
oHRvwqBuMzQswqB0aGXCoHN3YXDCoHN0YXR1c8Kgb27CoG4zNMKgYWN0dWFsbHnCoGlzOihzd2Fw
X3RvdGFswqAtwqBzd2FwX2ZyZWUpwqA+wqBtZW1fYXZhaWxhYmxlc3dhcF91c2VkwqA+wqBtZW1f
YXZhaWxhYmxlP8KgY29uZnVzZWQuLi5zbywswqB0aGXCoGxvZ2ljwqBpczoxKcKgY2hlY2vCoG4z
MzrCoHN3YXBbcGFzc2VkXSzCoHRoZW7CoG1lbW9yeVtmYWlsZWRdLMKgdGhlbsKgZ290b8KgKGZv
ci4uY29udGludWUuLmxvb3ApMinCoGNoZWNrwqBuMzQ6wqBzd2FwW2ZhaWxlZF0swqB0aGVuwqBn
b3RvwqAoZm9yLi5jb250aW51ZS4ubG9vcClJZsKgScKgaGF2ZcKgbWlzdW5kZXJzdG9vZMKgYW55
dGhpbmcswqBwbGVhc2XCoGxldMKgbWXCoGtub3cuIyMjwqBjb25jbHVzaW9uwqAjIyMxKcKgbjMz
wqBkb8Kgbm90wqBoYXZlwqBlbm91Z2jCoG1lbW9yeS7CoFt5ZXMswqBJwqBrbm93wqB0aGF0Ll0y
KcKgbjM0wqBtZW1vcnnCoGlzwqBpbGxlZ2FswqBbd2h5wqBhbmTCoGhvd8KgdG/CoHNvbHZlwqBp
dD9dMynCoHdoYXTCoEnCoHRyaWVkOi0tY2hhbmdlwqBjb25maWc6wqBCbG9ja01pZ3JhdGlvbk9u
U3dhcFVzYWdlUGVyY2VudGFnZVtyb290QGVuZ2luZcKgfl0jwqBlbmdpbmUtY29uZmlnwqAtLXNl
dMKgQmxvY2tNaWdyYXRpb25PblN3YXBVc2FnZVBlcmNlbnRhZ2U9NzXCoC1jdmVywqBnZW5lcmFs
W3Jvb3RAZW5naW5lwqB+XSPCoGVuZ2luZS1jb25maWfCoC0tZ2V0wqBCbG9ja01pZ3JhdGlvbk9u
U3dhcFVzYWdlUGVyY2VudGFnZUJsb2NrTWlncmF0aW9uT25Td2FwVXNhZ2VQZXJjZW50YWdlOsKg
NzXCoHZlcnNpb246wqBnZW5lcmFsUmVzdWx0OsKgZmFpbGVkLi0tZGlzYWJsZcKgRW5hYmxlU3dh
cENoZWNrSG93P8KgT3B0aW9uwqBub3TCoGZvdW5kwqBmcm9twqAnZW5naW5lLWNvbmZpZ8KgLS1s
aXN0JyzCoHNob3VsZMKgScKgdXBkYXRlwqB0YWJsZcKgZmllbGTCoGRpcmVjdMKgZnJvbcKgZGI/
LS1kaXNrwqBzd2FwwqBwYXJ0aXRpb27CoG9uwqBob3N0U2hvdWxkwqBJwqBkb8KgdGhpc8Kgb3Bl
cmF0aW9uPy0tdXBkYXRlwqBvdmlydC1lbmdpbmU/Tm/CoHVzZWZ1bMKgaW5mb21hdGlvbsKgZm91
bmTCoGluwqBsYXRlc3TCoHJlbGVhc2XCoG5vdGUswqBzaG91bGTCoEnCoGRvwqB0aGlzwqBvcGVy
YXRpb24/IyMjIGhlbHAgIyMjYW55wqBoZWxwwqB3b3VsZMKgYmXCoGFwcHJlY2lhdGVkLlpZWFcu
wqBSZWZlcmVuY2VodHRwOi8vd3d3Lm92aXJ0Lm9yZy9TbGEvRnJlZU1lbW9yeUNhbGN1bGF0aW9u
aHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9waXBlcm1haWwvdXNlcnMvMjAxMi1Ob3ZlbWJlci8wMTA4
NTguaHRtbGh0dHA6Ly9saXN0cy5vdmlydC5vcmcvcGlwZXJtYWlsL3VzZXJzLzIwMTMtTWFyY2gv
MDEzMjAxLmh0bWxodHRwOi8vY29tbWVudHMuZ21hbmUub3JnL2dtYW5lLmNvbXAuZW11bGF0b3Jz
Lm92aXJ0LnVzZXIvMTkyODhodHRwOi8vamltLnJpcHBvbi5tZS51ay8yMDEzLzA3L292aXJ0LXRl
c3RpbmctZW5nbGlzaC1pbnN0cnVjdGlvbnMtZm9yLmh0bWw=
------=ALIBOUNDARY_54603_493d9940_568114ce_5020f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div class=3D"__aliyun_email_body_block"><div style=3D"clear:
both;"><span sty=
le=3D"font-family: Tahoma, Arial, STHeiti, SimSun; font-size: 14px; color: rgb=
(0, 0,
0);">host xxx did no satisfy internal fil=
ter Memory because its swap value was illeg=
al.<br ><br >### Description ###<br
>1. problem<br >1) mig=
rate vm {name:xyz001, mem(min, max) =3D (2G,4G)}=
from ovirt host n33 to n34, failed.<br
>2)=
shutting down vm {name: test001, mem(min, =
max) =3D (1G,1G)} on n34, update test001's =
config: Host->Start Running On: Specific(n34), the=
n start test001, while, it's running on n33=
.<br ><br >2. err message <br
>Error while executing&=
nbsp;action: migrate <br >[engine gui]<br
>xyz001:<br >Cannot&n=
bsp;migrate VM. There is no host that satis=
fies current scheduling constraints. See below f=
or details:<br
>The host n33.ovirt did not satis=
fy internal filter Memory because has availabe&n=
bsp;1863 MB memory. Insufficient free memory to&=
nbsp;run the VM.<br
>The host n34.ovirt did not&=
nbsp;satisfy internal filter Memory because its =
swap value was illegal.<br ><br ><br
>[engine.log]<br >INFO&nbs=
p; [org.ovirt.engine.core.bll.MigrateVmCommand] (default task-2=
3) [5916aa3b] Lock Acquired to object 'EngineLoc=
k:{exclusiveLocks=3D'[73351885-9a92-4317-baaf-e4f2bed1171a=3D<VM, ACTI=
ON_TYPE_FAILED_VM_IS_BEING_MIGRATED$VmName test11>]', sharedLocks=
=3D'null'}'<br
>INFO [org.ovirt.engine.core.bll.scheduling.Scheduli=
ngManager] (default task-23) [5916aa3b] Candidate hos=
t 'n34' ('2ae3a219-ae9a-4347-b1e2-0e100360231e') was filte=
red out by 'VAR__FILTERTYPE__INTERNAL' filter 'Memory=
' (correlation id: null)<br
>INFO [org.ovirt.engine.=
core.bll.scheduling.SchedulingManager] (default task-23) [5916a=
a3b] Candidate host 'n33' ('688aec34-5630-478e-ae5e-9d5799=
0804e5') was filtered out by 'VAR__FILTERTYPE__INTERN=
AL' filter 'Memory' (correlation id: null)<br
>WARN&n=
bsp; [org.ovirt.engine.core.bll.MigrateVmCommand] (default task=
-23) [5916aa3b] CanDoAction of action 'MigrateVm'&nbs=
p;failed for user admin@internal. Reasons: VAR__ACTIO=
N__MIGRATE,VAR__TYPE__VM,SCHEDULING_ALL_HOSTS_FILTERED_OUT,VAR__FILTERTYPE__IN=
TERNAL,$hostName n33,$filterName Memory,$availableMem 1863,VAR_=
_DETAIL__NOT_ENOUGH_MEMORY,SCHEDULING_HOST_FILTERED_REASON_WITH_DETAIL,VAR__FI=
LTERTYPE__INTERNAL,$hostName n34,$filterName Memory,VAR__DETAIL__SWA=
P_VALUE_ILLEGAL,SCHEDULING_HOST_FILTERED_REASON_WITH_DETAIL<br
>INFO &nbs=
p;[org.ovirt.engine.core.bll.MigrateVmCommand] (default task-23)&nbs=
p;[5916aa3b] Lock freed to object 'EngineLock:{exclus=
iveLocks=3D'[73351885-9a92-4317-baaf-e4f2bed1171a=3D<VM, ACTION_TYPE_F=
AILED_VM_IS_BEING_MIGRATED$VmName test11>]', sharedLocks=3D'null'=
}'<br ><br ><br >3. DC<br
>Compatibility Version: 3.5<br ><br >=
4. Cluster<br
>Memory Optimization: For Server Load&n=
bsp;- Allow scheduling of 150% of physical =
memory<br
>Memory Balloon: Enable Memory Balloon Opti=
mization<br
>Enable KSM: Share memory pages across&nb=
sp;all available memory (best KSM effectivness)<br
><=
br >5. HOST<br >name: n33, n34<br
>mem: 32G<br ><br >6.&nb=
sp;VM<br >[n33] 11 vms<br
>(min, max) =3D (2G,4G)&nbs=
p;=3D 8<br
>(min, max) =3D (2G,8G) =3D 1<br
>(mi=
n, max) =3D (2G,2G) =3D 2<br
>total: 22G/44G<br =
<br >[n34] 7 vms<br
>(min, max) =3D (0.5G,1G) =3D=
1<br
>(min, max) =3D (1G,2G) =3D 1<br
>(min,&nb=
sp;max) =3D (2G,2G) =3D 1<br
>(min, max) =3D&nbs=
p;(2G,4G) =3D 3<br
>(min, max) =3D (8G,8G) =3D&n=
bsp;1<br >total: 17.5G/25G<br
>------------------------------------------=
--<br
>(min, max) =3D (2G,4G) stands for: <br
>M=
emory Size: 4G<br
>Physical Memory Guaranteed: 2G<br =
Memory Balloon Device Enabled: checked<br
>--------------=
------------------------------<br ><br
>7. rpm version<br >[root@n33=
~]# rpm -qa |grep vdsm<br
>vdsm-yajsonrpc-4.16.27-0.=
el6.noarch<br >vdsm-jsonrpc-4.16.27-0.el6.noarch<br
>vdsm-cli-4.16.27-0.el6.no=
arch<br >vdsm-python-zombiereaper-4.16.27-0.el6.noarch<br
>vdsm-xmlrpc-4.16.27=
-0.el6.noarch<br >vdsm-python-4.16.27-0.el6.noarch<br
>vdsm-4.16.27-0.el6.x86_=
64<br ><br
>[root@engine ~]# rpm -qa |grep ovirt<br
>=
ovirt-release36-001-2.noarch<br >ovirt-engine-setup-base-3.6.0.3-1.el6.noarch<=
br >ovirt-engine-setup-3.6.0.3-1.el6.noarch<br >ovirt-image-uploader-3.6.0-1.e=
l6.noarch<br >ovirt-engine-wildfly-8.2.0-1.el6.x86_64<br
>ovirt-engine-setup-p=
lugin-vmconsole-proxy-helper-3.6.0.3-1.el6.noarch<br >ovirt-host-deploy-1.4.0-=
1.el6.noarch<br >ovirt-engine-backend-3.6.0.3-1.el6.noarch<br
>ovirt-engine-we=
badmin-portal-3.6.0.3-1.el6.noarch<br >ovirt-engine-jboss-as-7.1.1-1.el6.x86_6=
4<br >ovirt-engine-lib-3.6.0.3-1.el6.noarch<br
>ovirt-engine-setup-plugin-ovir=
t-engine-common-3.6.0.3-1.el6.noarch<br >ovirt-engine-setup-plugin-ovirt-engin=
e-3.6.0.3-1.el6.noarch<br >ovirt-engine-setup-plugin-websocket-proxy-3.6.0.3-1=
.el6.noarch<br >ovirt-engine-sdk-python-3.6.0.3-1.el6.noarch<br
>ovirt-iso-upl=
oader-3.6.0-1.el6.noarch<br >ovirt-vmconsole-proxy-1.0.0-1.el6.noarch<br
>ovir=
t-engine-extensions-api-impl-3.6.0.3-1.el6.noarch<br >ovirt-engine-websocket-p=
roxy-3.6.0.3-1.el6.noarch<br >ovirt-engine-vmconsole-proxy-helper-3.6.0.3-1.el=
6.noarch<br >ebay-cors-filter-1.0.1-0.1.ovirt.el6.noarch<br
>ovirt-host-deploy=
-java-1.4.0-1.el6.noarch<br >ovirt-engine-tools-3.6.0.3-1.el6.noarch<br
>ovirt=
-engine-restapi-3.6.0.3-1.el6.noarch<br >ovirt-engine-3.6.0.3-1.el6.noarch<br =
ovirt-engine-extension-aaa-jdbc-1.0.1-1.el6.noarch<br
>ovirt-engine-cli-3.6.0=
.1-1.el6.noarch<br
>ovirt-vmconsole-1.0.0-1.el6.noarch<br >ovirt-engine-wildfl=
y-overlay-001-2.el6.noarch<br >ovirt-engine-dbscripts-3.6.0.3-1.el6.noarch<br =
ovirt-engine-userportal-3.6.0.3-1.el6.noarch<br
>ovirt-guest-tools-iso-3.6.0-=
0.2_master.fc22.noarch<br ><br ><br
>### DB ###<br >[root@engine&nbs=
p;~]# su postgres<br >bash-4.1$ cd ~<br
>bash-4.1$ ps=
ql engine<br
>engine=3D# select vds_id, physical_mem_mb,&n=
bsp;mem_commited, vm_active, vm_count, reserved_mem, guest=
_overhead, transparent_hugepages_state, pending_vmem_size from&=
nbsp;vds_dynamic;<br
> &n=
bsp; vds_id &n=
bsp; | physica=
l_mem_mb | mem_commited | vm_active | vm_count&n=
bsp;| reserved_mem | guest_overhead | transparent_hug=
epages_state | pending_vmem_size <br
>-------------------------=
-------------+-----------------+--------------+-----------+----------+--------=
------+----------------+-----------------------------+-------------------<br >=
688aec34-5630-478e-ae5e-9d57990804e5 |  =
; 32057 |  =
; 45836 |  =
;11 | 11 |  =
; 321 | &=
nbsp; 65 | &nbs=
p; &nbs=
p; 2 |&n=
bsp; &n=
bsp; 0<br
> 2ae3a219-ae9a-4347-b1e2-0e100360231e |&=
nbsp; 32057 |&=
nbsp; 26120 | &=
nbsp; 7 |  =
; 7 | &nb=
sp;321 |  =
; 65 | &n=
bsp; &n=
bsp; 2 | =
0<br
>(2 rows=
)<br ><br ><br ><br >### memory ###<br
>[n33]<br ># free -=
m<br
> =
total used &nb=
sp; free shared  =
; buffers cached<br
>Mem: &=
nbsp; 32057 31=
770 287 =
0  =
; 41 6347<br
>-/+ buf=
fers/cache: 25381 &n=
bsp; 6676<br
>Swap: =
29999 10025 &n=
bsp;19974<br ><br
>Physical Memory: &n=
bsp; &n=
bsp; 32057 MB total,&=
nbsp;25646 MB used, 6411 MB free<br
>Swap Size:&=
nbsp; &=
nbsp; &=
nbsp; 29999 MB total, =
10025 MB used, 19974 MB free<br
>Max free M=
emory for scheduling new VMs:  =
;1928.5 MB<br ><br ><br >[n34]<br
># free -m<br > &n=
bsp; total &nb=
sp; used  =
;free shared buffers =
cached<br
>Mem: &nb=
sp; 32057 31713  =
; 344 &n=
bsp; 0 78 =
; 13074<br
>-/+ buffers/cache: &n=
bsp; 18560 13497<br
>Swap:=
29999 &=
nbsp; 5098 24901<br
><br >Physic=
al Memory: &nb=
sp; &nb=
sp; 32057 MB total, 18593 MB u=
sed, 13464 MB free<br
>Swap Size: &=
nbsp; &=
nbsp; &=
nbsp; 29999 MB total, 5098 MB used,&=
nbsp;24901 MB free<br
>Max free Memory for sched=
uling new VMs: 21644.5 MB<br
><br =
<br ><br >### code ###<br
>##from: https://github.com/oVirt/ov=
irt-engine<br >v3.6.0<br
><br >##from: D:\code\java\ovirt-engine\backend\=
manager\modules\dal\src\main\resources\bundles\AppErrors.properties<br >VAR__D=
ETAIL__SWAP_VALUE_ILLEGAL=3D$detailMessage its swap value =
was illegal<br ><br
>##from: D:\code\java\ovirt-engine\backend\manag=
er\modules\bll\src\main\java\org\ovirt\engine\core\bll\scheduling\policyunits\=
MemoryPolicyUnit.java<br >#-----------code--------------1#<br
> &nb=
sp; private boolean isVMSwapValueLegal(VDS host) {<br=
if (!Config.<Boolean=
> getValue(ConfigValues.EnableSwapCheck)) {<br
>  =
;  =
; return true;<br
> &=
nbsp; }<br
> &=
nbsp; (omitted..)<br
> &nb=
sp;return ((swap_total - swap_free - mem_available)&n=
bsp;* 100 / physical_mem_mb) <=3D Config.<Integ=
er> getValue(ConfigValues.BlockMigrationOnSwapUsagePercentage)<br
>&nb=
sp; (omitted..)<br
> } <br >#----=
-------code--------------1#<br
>if EnableSwapCheck =3D False&nb=
sp;then return True, so we can simply disab=
le this option? Any Suggestion?<br ><br
>[root@engine =
;~]# engine-config --get BlockMigrationOnSwapUsagePercentage<br=
BlockMigrationOnSwapUsagePercentage: 0 version: general<br
><=
br >so,,<br
>Config.<Integer> getValue(ConfigValues.BlockMigrationO=
nSwapUsagePercentage) =3D 0<br >so,,<br
>(swap_total - swa=
p_free - mem_available) * 100 / physical_mem_mb&=
nbsp;<=3D 0<br >so,,<br
>swap_total - swap_free - =
mem_available <=3D 0<br >right?<br
>so,, if (swap_total=
- swap_free) <=3D mem_available then return&=
nbsp;True else return False<br ><br ><br
>#-----------code-----=
---------2#<br
> for (VDS v=
ds : hosts) {<br
> &nb=
sp; if (!isVMSwapValueLegal(vds)) {<br
> =
;  =
; log.debug("Host '{}' swap value is illeg=
al", vds.getName());<br
> =
messages.addMessage(vds.getId(=
), EngineMessage.VAR__DETAIL__SWAP_VALUE_ILLEGAL.toString());<br
> &=
nbsp; &=
nbsp; continue;<br
>  =
; }<br
>  =
; if (!memoryChecker.evaluate(vds, vm)) {<br
>=
=
int hostAavailableMem =3D SlaValidator.getIns=
tance().getHostAvailableMemoryLimit(vds);<br
> &n=
bsp; log.debug("Hos=
t '{}' has {} MB available. Insufficient me=
mory to run the VM",<br
> &nb=
sp; &nb=
sp; vds.getName(),<br
> &n=
bsp; &n=
bsp; hostAavailableMem);<br
> &n=
bsp; &n=
bsp;messages.addMessage(vds.getId(), String.format("$availableMem %1=
$d", hostAavailableMem));<br
> &=
nbsp; messages.addMessage(vds.g=
etId(), EngineMessage.VAR__DETAIL__NOT_ENOUGH_MEMORY.toString());<br
>&nb=
sp; &nb=
sp; continue;<br
> &=
nbsp; }<br
> &=
nbsp; (omitted..)<br
> &nb=
sp; }<br ><br >#-----------code--------------2#<br
>!isVMSwapValueLegal&n=
bsp;then throw exception, right?<br
>so,, when we&nbs=
p;migrate vm from n33 to n34, the swap =
;status on n34 actually is:<br
>(swap_total - sw=
ap_free) > mem_available<br ><br
>swap_used > mem_av=
ailable? confused...<br ><br
>so,, the logic is:<br >1)&nb=
sp;check n33: swap[passed], then memory[failed], then=
goto (for..continue..loop)<br
>2) check n34: swap[fa=
iled], then goto (for..continue..loop)<br ><br
>If I =
have misunderstood anything, please let me know.=
<br ><br ><br ><br >### conclusion ###<br
>1) n33 do =
not have enough memory. [yes, I know that.]=
<br
>2) n34 memory is illegal [why and how&=
nbsp;to solve it?]<br
>3) what I tried:<br >--change&=
nbsp;config: BlockMigrationOnSwapUsagePercentage<br
>[root@engine ~]=
# engine-config --set BlockMigrationOnSwapUsagePercentage=3D75&=
nbsp;-cver general<br
>[root@engine ~]# engine-config --ge=
t BlockMigrationOnSwapUsagePercentage<br >BlockMigrationOnSwapUsagePercen=
tage: 75 version: general<br ><br
>Result: failed.<br ><br=
--disable EnableSwapCheck<br
>How? Option not found =
;from 'engine-config --list', should I update ta=
ble field direct from db?<br ><br ><br
>--disk swap&n=
bsp;partition on host<br
>Should I do this opera=
tion?<br ><br >--update ovirt-engine?<br
>No useful infomation&=
nbsp;found in latest release note, should I =
;do this operation?<br ><br ><br >### help ###<br
>any help&nbs=
p;would be appreciated.<br ><br
>ZYXW. Reference<br >http://www=
.ovirt.org/Sla/FreeMemoryCalculation<br >http://lists.ovirt.org/pipermail/user=
s/2012-November/010858.html<br >http://lists.ovirt.org/pipermail/users/2013-Ma=
rch/013201.html<br >http://comments.gmane.org/gmane.comp.emulators.ovirt.user/=
19288<br >http://jim.rippon.me.uk/2013/07/ovirt-testing-english-instructions-f=
or.html</span></div></div>
------=ALIBOUNDARY_54603_493d9940_568114ce_5020f--