ECS: помилки віддаленого вводу/виводу NFS; Зміна власника відра на бакет із підтримкою FS може призвести до того, що додатки та/або користувачі не зможуть отримати доступ до NFS-файлів
Summary: Попередній власник відра не дозволений або обмежений ObjectControllerException: Method updateObjectInternal не дозволено для попереднього власника bucket
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
Зміна користувача на сторінці власника бакра в інтерфейсі користувача:
Ця проблема стосується NFS-бакетів і зміни власника відра через інтерфейс користувача. Це може призвести до втрати доступу до відра у файловій системі Linux. Навіть якщо ми повернемо зміну до початкового власника, доступ буде неможливим, що призведе до DU
.У цьому прикладі:
власник відра був змінений на "sham2" через інтерфейс користувача. Через обмеження в ECS, навіть після зміни імені власника відра назад на «sham1». ECS не змінює власника відра назад на «sham1» через інтерфейс користувача. Наразі це можливо лише за допомогою CLI, який використовує API з payload для скидання прапорця власника на true.
Способи виявлення проблеми: на комп'ютері з Linux користувач просить торкнутися файлу, наприклад:
Ця проблема стосується NFS-бакетів і зміни власника відра через інтерфейс користувача. Це може призвести до втрати доступу до відра у файловій системі Linux. Навіть якщо ми повернемо зміну до початкового власника, доступ буде неможливим, що призведе до DU
.У цьому прикладі:
власник відра був змінений на "sham2" через інтерфейс користувача. Через обмеження в ECS, навіть після зміни імені власника відра назад на «sham1». ECS не змінює власника відра назад на «sham1» через інтерфейс користувача. Наразі це можливо лише за допомогою CLI, який використовує API з payload для скидання прапорця власника на true.
Способи виявлення проблеми: на комп'ютері з Linux користувач просить торкнутися файлу, наприклад:
admin@node1~>touch file
touch: setting times of `file': Remote I/O error
se svc_log with the string "method updateObjectInternal "
Command:
# svc_log -a -sr dataheadsvc | grep "method updateObjectInternal"
Example:
admin@node1~>svc_log -a -sr dataheadsvc | grep "method updateObjectInternal" svc_log v1.0.22 (svc_tools v1.5.3) Started 2019-06-06 10:45:04 Running on nodes: <All nodes> Time range: 2019-06-05 10:45:04 - 2019-06-06 10:45:04 Filter string(s): <All messages> Show nodename(s): True Search reclaim logs (if any): False com.emc.storageos.data.object.exception.ObjectControllerException: method updateObjectInternal not allowed for previous bucket owner sham1 Caused by: com.emc.storageos.data.object.exception.ObjectControllerException: method updateObjectInternal not allowed for previous bucket owner sham1
Cause
Створення відра з конкретним користувачем як власником, а потім зміна власника відра. Нарешті, надання оригінальному власнику повного контролю за допомогою сторінки ACL не спрацювало з винятком журналу ECS:
ObjectControllerException: method updateObjectInternal not allowed for previous bucket owner <ownerid> This is a known issue currently being evaluated by Dell EMC at this time.
Resolution
Обхідний шлях полягає в тому, щоб змінити власника bucket за допомогою API через CLI з payload resetowner flag на true.
1. Визначте поточного власника відра.
2. Створіть простий xml-файл за допомогою редактора vi. У наведеному нижче прикладі це називається /tmp/bucket-owner.xml. Це двоетапний процес. Ми маємо тимчасово передати це новому власнику Sham2. Як у цьому прикладі нижче, перед поверненням до початкового власника sham1, підтвердьте результат:
. 7. Після завершення зміни конфігурації ми більше не повинні бачити тієї ж самої помилки
1. Визначте поточного власника відра.
Для генерації TOKEN потрібен root-пароль інтерфейсу користувача. Приклад:
admin@ecsnode1:~> tok=$(curl -iks https://XX.XX.XX.XX:4443/login -u 'root:ChangeMe' | grep X-SDS-AUTH-TOKEN)
Перевірте поточного власника кокета (замінити бакет і простір імен у вашій ситуації):
admin@node1:~> curl -s -k -X GET -H "$tok" https://XX.XX.XX.XX:4443/object/bucket/sham_bk_nfs/info?namespace=degreat_nfs | xmllint --format - | grep '<owner>' <owner>sham2</owner>
Це підтверджує параметр, reset_previous_owners повинен бути встановлений як істинний. Власник відштовхнутого відра знаходиться на інтерфейсі користувача, але API через CLI підтверджує, що ECS все ще сприймає власника відра як «sham2».
2. Створіть простий xml-файл за допомогою редактора vi. У наведеному нижче прикладі це називається /tmp/bucket-owner.xml. Це двоетапний процес. Ми маємо тимчасово передати це новому власнику Sham2. Як у цьому прикладі нижче, перед поверненням до початкового власника sham1, підтвердьте результат:
admin@node1:~ # vi /tmp/bucket-owner.xml admin@ecsnode1:~ # cat /tmp/bucket-owner.xml <object_bucket_update_owner> <namespace>degreat_nfs</namespace> <new_owner>sham2</new_owner> <reset_previous_owners>true</reset_previous_owners> </object_bucket_update_owner> 3. Change the bucket owner to the temporary owner.
Синтаксис API, необхідний для зміни власника bucket на "sham2" через xml-файл, виглядає так:
admin@ecsnode1:~> curl -v -k -X "POST" "https://xx.xx.xx.xx:4443/object/bucket/sham_bk_nfs/owner" -H "$tok" -H "Content-Type: application/xml" -H "ACCEPT:application/xml" -d @/tmp/bucket-owner.xml -v * Hostname was NOT found in DNS cache * Trying xx.xx.xx.xx... * Connected to xx.xx.xx.xx (xx.xx.xx.xx) port 4443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs/ * SSLv3, TLS unknown, Certificate Status (22): * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, Certificate (11): * SSLv3, TLS handshake, Server key exchange (12): * SSLv3, TLS handshake, Server finished (14): * SSLv3, TLS handshake, Client key exchange (16): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: CN=localhost * start date: 2019-03-25 09:53:41 GMT * expire date: 2029-03-22 09:53:41 GMT * issuer: CN=localhost * SSL certificate verify result: self signed certificate (18), continuing anyway. > POST /object/bucket/sham_bk_nfs/owner HTTP/1.1 > User-Agent: curl/7.37.0 > Host: xx.xx.xx.xx:4443 > X-SDS-AUTH-TOKEN: BAAcUy9KYlhxTlVYb2M0bnF3bTNscEsvSEdDeWhJPQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOmJhOGQ3ZTkzLTMyMGYtNDNmNy05Y2FkLWM4YWQzMWFiMzY1MAIADTE1NTk3Mzk3OTA2MDgDAC51cm46VG9rZW46YjQ4NGNiZjEtNTkwNy00YWI3LTgzYTctM2Y3OGRhM2RiY2NiAgAC0A8= > Content-Type: application/xml > ACCEPT:application/xml > Content-Length: 179 > * upload completely sent off: 179 out of 179 bytes < HTTP/1.1 200 OK < Date: Thu, 06 Jun 2019 10:56:08 GMT < Content-Length: 0 < Connection: keep-alive < * Connection #0 to host xx.xx.xx.xx left intact 4. Edit the simple.xml file previously created in step 2 and this time insert original owner of sham1
admin@node1:~ # vi /tmp/bucket-owner.xml admin@ecsnode1:~ # cat /tmp/bucket-owner.xml <object_bucket_update_owner> <namespace>degreat_nfs</namespace> <new_owner>sham1</new_owner> <reset_previous_owners>true</reset_previous_owners> </object_bucket_update_owner> 5. Change the bucket owner back to the original owner The API syntax required to change the bucket owner back to "sham1" through the xml file is as follows:
admin@ecsnode1:~> curl -v -k -X "POST" "https://xx.xx.xx.xx:4443/object/bucket/sham_bk_nfs/owner" -H "$tok" -H "Content-Type: application/xml" -H "ACCEPT:application/xml" -d @/tmp/bucket-owner.xml -v * Hostname was NOT found in DNS cache * Trying xx.xx.xx.xx... * Connected to xx.xx.xx.xx (xx.xx.xx.xx) port 4443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs/ * SSLv3, TLS unknown, Certificate Status (22): * SSLv3, TLS handshake, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, Certificate (11): * SSLv3, TLS handshake, Server key exchange (12): * SSLv3, TLS handshake, Server finished (14): * SSLv3, TLS handshake, Client key exchange (16): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: CN=localhost * start date: 2019-03-25 09:53:41 GMT * expire date: 2029-03-22 09:53:41 GMT * issuer: CN=localhost * SSL certificate verify result: self signed certificate (18), continuing anyway. > POST /object/bucket/sham_bk_nfs/owner HTTP/1.1 > User-Agent: curl/7.37.0 > Host: xx.xx.xx.xx:4443 > X-SDS-AUTH-TOKEN: BAAcUy9KYlhxTlVYb2M0bnF3bTNscEsvSEdDeWhJPQMAjAQASHVybjpzdG9yYWdlb3M6VmlydHVhbERhdGFDZW50ZXJEYXRhOmJhOGQ3ZTkzLTMyMGYtNDNmNy05Y2FkLWM4YWQzMWFiMzY1MAIADTE1NTk3Mzk3OTA2MDgDAC51cm46VG9rZW46YjQ4NGNiZjEtNTkwNy00YWI3LTgzYTctM2Y3OGRhM2RiY2NiAgAC0A8= > Content-Type: application/xml > ACCEPT:application/xml > Content-Length: 179 > * upload completely sent off: 179 out of 179 bytes < HTTP/1.1 200 OK < Date: Thu, 06 Jun 2019 10:56:08 GMT < Content-Length: 0 < Connection: keep-alive < * Connection #0 to host xx.xx.xx.xx left intact 6. Confirm the bucket owner change is reflected.
Підтверджіть, що зміна власника відра тепер «sham1».
admin@ecsnode1:~> curl -s -k -X GET -H "$tok" https://XX.XX.XX.XX:4443/object/bucket/sham_bk_nfs/info?namespace=degreat_nfs | xmllint --format - | grep '<owner>' <owner>sham1</owner>
Після того, як власник bucket буде повернутий у API, переконайтеся, що хост тепер може отримати доступ до відра у файловій системі Linux.
. 7. Після завершення зміни конфігурації ми більше не повинні бачити тієї ж самої помилки
svc_log -f "method updateObjectInternal not allowed" -start "20 hour ago" -sr all -sh -st hour svc_log v1.0.22 (svc_tools v1.6.8) Started 2020-01-23 09:28:17 Running on nodes: <All nodes> Time range: 2020-01-22 13:28:17 - 2020-01-23 09:28:17 Filter string(s): 'method updateObjectInternal not allowed' Show nodename(s): True Search reclaim logs (if any): False Count of message occurrences per hour: 2020-01-22 13:xx - 5066 2020-01-22 14:xx - 9580 2020-01-22 15:xx - 9574 2020-01-22 16:xx - 9580 2020-01-22 17:xx - 9570 2020-01-22 18:xx - 9576 2020-01-22 19:xx - 9564 2020-01-22 20:xx - 9576 2020-01-22 21:xx - 9576 2020-01-22 22:xx - 9572 2020-01-22 23:xx - 9564 2020-01-23 00:xx - 9586 2020-01-23 01:xx - 9574 2020-01-23 02:xx - 9572 2020-01-23 03:xx - 4564 2020-01-23 04:xx - 0 2020-01-23 05:xx - 0 2020-01-23 06:xx - 0 2020-01-23 07:xx - 0 2020-01-23 08:xx - 0 2020-01-23 09:xx - 0 Dell EMC is aware of this issue and are working on a fix in a future release.
Additional Information
Пов'язаний NFS KB:
- ECS: Як створити базовий експорт NFS і змонтувати його на клієнті
- ECS: помилка потокового стрімінгу dataheadsvc: процедура NFSv3 LINK не підтримується у запиті ReadLinkRequest
- ECS: Кріплення NFS не працює без такого файлу, каталогу чи ERROR_OBJECT_NOT_FOUND
- ECS: помилки віддаленого вводу/виводу NFS; Зміна власника кокета на відро з підтримкою FS може призвести до того, що додатки/користувачі не зможуть отримати доступ до NFS-файлів
- ECS: NFS запис викликає помилку введення/виведення після певної кількості даних.
- ECS: Використання NFS-спільного файлу з ECS з VMware NFS-сховищем даних
- ECS: Найкращі практики для експорту ECS NFS
- ECS: Як встановити NFS-спільний контент на клієнті Windows
- ECS: NFS не монтується після зміни налаштувань експорту файлів у інтерфейсі
- ECS: Чи сумісний Oracle WebCenter Content (WCC) з ECS?
Підпишіться на оновлення продуктів.
Ви можете підписатися на оновлення, дотримуючись інструкцій у статті знань нижче:
DELL EMC: Як підписатися на сторінки продуктів — підтримка Dell?
Affected Products
Elastic Cloud StorageProducts
ECS Appliance, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, Elastic Cloud StorageArticle Properties
Article Number: 000055535
Article Type: Solution
Last Modified: 29 Jul 2026
Version: 5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.